当前位置:  开发笔记 > 编程语言 > 正文

如何从Android支持库中锁定CollapsingToolbarLayout

如何解决《如何从Android支持库中锁定CollapsingToolbarLayout》经验,为你挑选了1个好方法。

我正在使用带有(通常)一个片段作为内容的Activity类。在活动中,我CollapsingToolbarLayout用作某些信息的标头,并且一切正常。但是在某些情况下(当附加了一些片段时),我不想显示该信息,也不想CollapsingToolbarLayout滚动打开。

我要实现的是锁定CollapsingToolbarLayout,防止它从片段中打开。我正在以编程方式将其折叠appBarLayout.setExpanded(false, true);



1> Kuffs..:

我想出了另一种方法,因为设置嵌套滚动标记仅在拖动NestedScrollView时才有效。仍然可以通过在应用栏上滑动来扩展应用栏。

我在“ Utils”类中将其设置为静态函数。显然,您在解锁时设置的标志将取决于与您的用例相关的标志。

此功能假定您从扩展的工具栏开始

public static void LockToolbar(boolean locked, final AppBarLayout appbar, final CollapsingToolbarLayout toolbar) {

    if (locked) {
        // We want to lock so add the listener and collapse the toolbar
        appbar.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() {

            @Override
            public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) {
                if (toolbar.getHeight() + verticalOffset < 2 * ViewCompat.getMinimumHeight(toolbar)) {
                    // Now fully expanded again so remove the listener
                    appbar.removeOnOffsetChangedListener(this);
                } else {
                    // Fully collapsed so set the flags to lock the toolbar
                    AppBarLayout.LayoutParams lp = (AppBarLayout.LayoutParams) toolbar.getLayoutParams();
                    lp.setScrollFlags(AppBarLayout.LayoutParams.SCROLL_FLAG_ENTER_ALWAYS_COLLAPSED);
                }
            }
        });
        appbar.setExpanded(false, true);
    } else {
        // Unlock by restoring the flags and then expand 
        AppBarLayout.LayoutParams lp = (AppBarLayout.LayoutParams) toolbar.getLayoutParams();
        lp.setScrollFlags(AppBarLayout.LayoutParams.SCROLL_FLAG_SCROLL | AppBarLayout.LayoutParams.SCROLL_FLAG_EXIT_UNTIL_COLLAPSED);
        appbar.setExpanded(true, true);
    }

}


注意!不要忘了调用以下行:工具栏.setLayoutParams(lp); 否则,解决方法将不起作用。
推荐阅读
凹凸曼00威威_694
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有