Я хочу показать BottomSheet
над моим BottomBar
. Поэтому я должен написать обычай BottomSheet
behavior
, который поместит мой BottomSheet
выше моего BottomBar
- BottomBar
имеет shy behavior
(избегает во время прокрутки).BottomSheet пользовательское поведение - выше BottomBar
Существует то, что я пытался реализовать:
public class BottomSheetBehavior<T extends View> extends android.support.design.widget.BottomSheetBehavior<T> {
public BottomSheetBehavior(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean layoutDependsOn(CoordinatorLayout parent, View child, View dependency) {
return dependency instanceof BottomBar;
}
@Override
public boolean onDependentViewChanged(CoordinatorLayout parent, View child, View dependency) {
// This will set the Y of my bottom sheet above the bottom bar every time BottomBar changes its position
child.setY(dependency.getY() - child.getHeight());
// But I also have to modify the bottom position of my BottomSheet
// so the BottomSheet knows when its collapsed in its final bottom position.
child.setBottom((int) dependency.getY() - dependency.getHeight());
return false;
}
}
До сих пор это решение не полностью функционален. Я могу положить BottomSheet
выше BottomBar
с помощью метода setY()
. Но разрастание и разрушение работают неправильно. Поэтому я попытался изменить нижнюю часть BottomSheet
с помощью метода setBottom()
Но он не работает ни. Возможно, это из-за неправильных единиц (px vs dp).
Может кто-нибудь помочь мне исправить мой код или хотя бы дать мне подсказку, что именно я делаю неправильно или что мне не хватает?
Как бы вы шли на изменение высоты нижнего бруса или нижнего листа, а не переноса x или y? Я ищу способ гарантировать, что контейнер с фрагментами, который у меня есть, не покрывается моим нижним листом, когда нижний лист находится в его сложенном состоянии. Любые мысли оценили! –