BottomSheetBehavior,AppBarLayout.ScrollingViewBehavior和AppBarLayout.Behavior如何协同工作?

时间:2016-11-16 02:36:59

标签: android android-layout android-coordinatorlayout android-appbarlayout bottom-sheet

在下面的GIF中,您会发现我无法以这种方式协调(呵呵)AppBarLayout,其中包含CollapsingToolbarLayoutPersistent BottomSheet他们一起玩得很好

目标: 上面以绿松石(fragment contents)显示的#26999f保持在上方,然后向后滚动,BottomSheet,上面以深绿色显示(#12783e),同时也尊重AppBarLayout及其行为

再次,正如你从GIF中看到的那样,我关闭了;片段内容使用的是custom layout_behaviorMyScrollingViewBehavior,它扩展了AppBarLayout.ScrollingViewBehavior

在下面的代码段中,如果MyScrollingViewBehavior#layoutDependsOntrue的实例,则dependency会返回RelativeLayout(本例中为BottomSheet)或者superAppBarLayout.ScrollingViewBehavior#layoutDependsOn)依赖于

@Override
public boolean layoutDependsOn(CoordinatorLayout parent, View child, View dependency) {
    return dependency instanceof RelativeLayout ||
            super.layoutDependsOn(parent, child, dependency);
}

MyScrollingViewBehavior#onDependentViewChanged内如果dependencyRelativeLayout的实例,意味着依赖关系是BottomSheet,则子项(即片段内容)使用{{1}向上或向下移动确保它保持在BottomSheet

之上
offsetTopAndBottom

可以找到完整的代码示例on Github here。此外,这个问题是my original question here

的后续和有希望的改进

0 个答案:

没有答案