美文网首页
如何在代码中改变appbarlayout的位置

如何在代码中改变appbarlayout的位置

作者: vb12 | 来源:发表于2018-06-01 21:39 被阅读36次

    如何在代码中改变appbarlayout的位置.
    比如在略懂的这个需求中, 当需要在代码中刷新页面列表数据时, 要回到列表的顶部, 并且需要把隐藏的appbarlayout显示出来.
    最后通过看代码, 依葫芦画瓢,

    appbarlayout在滑动时, 实际上是通过下面这个方法实现的:
    HeaderBehavior.java:


    图片.png

    --> setHeaderTopBottomOffset() --> setTopAndBottomOffset(newOffset);

    所以我们可以就使用这个方法setTopAndBottomOffset()

    这么做, 测了一下可以:
    CoordinatorLayout.LayoutParams layoutParams = (CoordinatorLayout.LayoutParams) appBarLayout.getLayoutParams();
    CoordinatorLayout.Behavior behavior = layoutParams.getBehavior();
    Log.d(TAG, "onDoubleClick: behavior:"+behavior);
    AppBarLayout.Behavior appBehavior = (AppBarLayout.Behavior) behavior;
    Log.d(TAG, "onDoubleClick: getTopAndBottomOffset:"+appBehavior.getTopAndBottomOffset());
    appBehavior.setTopAndBottomOffset(-appBehavior.getTopAndBottomOffset());

    相关文章

      网友评论

          本文标题:如何在代码中改变appbarlayout的位置

          本文链接:https://www.haomeiwen.com/subject/oyxlsftx.html