如何让CoordinatorLayout内容滚动到顶部?

我们在使用
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方法
 
 

你可能感兴趣的:(Android开发)