我想在BottomSheet
上方显示BottomBar
。所以我必须编写自定义BottomSheet
behavior
,将我的BottomSheet
置于我的BottomBar
之上 - BottomBar
已shy behavior
(在滚动期间隐藏) 。
我试图实施:
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)。
任何人都可以帮我修改我的代码,或者至少给我一些提示我究竟做错了什么或者我错过了什么?
答案 0 :(得分:1)
所以我推出了自己的解决方案。虽然有一些问题需要解决,但是工作得很好,例如CTRL + H
上面的阴影或者当BottomBar
被过期时隐藏BottomBar等。
对于那些面临相同或类似问题的人,有我的解决方案。
BottomSheet