当前位置:  开发笔记 > Android > 正文

使用协调器布局以编程方式隐藏工具栏

如何解决《使用协调器布局以编程方式隐藏工具栏》经验,为你挑选了1个好方法。

经过广泛搜索后,似乎没有人对同样的行为感兴趣.如果我错过了,请指出适当的地方.

问题如下:我在主活动xml中有一个协调器布局.在协调器布局内部有一个视图寻呼机.在我放入视图分页器的三个片段中的两个片段中,有一些循环视图触发了协调器布局中工具栏的隐藏.但是第三个片段没有循环视图.问题在于,当显示工具栏时,第三个片段被绘制得比它应该低,将ui的一部分隐藏在屏幕的下边缘下方.如果隐藏工具栏,则所有内容都会正常显示

所以问题是 - 如何以编程方式隐藏工具栏?例如,当用户滑动到视图寻呼机中的第三个片段时?

如果你认为有更好的方法 - 我也很高兴听到这个.谢谢!



1> 小智..:

回答你的问题:

我假设你Toolbar的名字包括在内AppBarLayout.为了实现它,你可以添加ViewPager.OnPageChangeListener到您ViewPager,并在onPageSelected()回调调用setExpanded()AppBarLayout:

 mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { }
            @Override
            public void onPageSelected(int position) {
                if(position == 2) { //the position of your non-scrolling fragment
                    AppBarLayout appBarLayout = (AppBarLayout) findViewById(R.id.appbar);
                    appBarLayout.setExpanded(false, true); //Hide the toolbar.
                }
            }
            @Override
            public void onPageScrollStateChanged(int state) { }
        });

替代方法:

另一种方法,不会说更好,我会让你根据你的内容和用户交互来判断,可以对你的非回收片段保持相同的滚动效果.您可以通过将片段内容包装在NestedScrollView(包含在support-v4中)与相应的内容来轻松实现,Behaviour这将触发隐藏工具栏中的CoordinatorLayout:






关于滚动,标签的一篇不错的博客帖子CoordinatorLayout:https://mzgreen.github.io/2015/06/23/How-to-hideshow-Toolbar-when-list-is-scrolling(part3)/

推荐阅读
谢谢巷议
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有