我们在使用
android.support.design.widget.CoordinatorLayout
的时候,有时会碰到这样的需求,就是让CoordinatorLayout里面的内容重新滚动到顶部。
百度和google了一番,都没发现有人提出这样的问题和对应的解决方案,只好自己去看源码了。>--<
功夫不负有心人,解决方案如下:
以AppBarLayout被包在CoordinatorLayout里面为例
CoordinatorLayout.Behavior behavior =
((CoordinatorLayout.LayoutParams) mAppBarLayout.getLayoutParams()).getBehavior();
if (behavior instanceof AppBarLayout.Behavior) {
AppBarLayout.Behavior appBarLayoutBehavior = (AppBarLayout.Behavior) behavior;
int topAndBottomOffset = appBarLayoutBehavior.getTopAndBottomOffset();
if (topAndBottomOffset != 0) {
appBarLayoutBehavior.setTopAndBottomOffset(0);
}
}
没错,关键方法就是behavior的setTopAndBottomOffset方法