android - 如何设置应用程序 :layout_scrollFlags for Toolbar programmatically

标签 android android-fragments android-toolbar android-coordinatorlayout

我的应用有一个 viewpager 和 4 个标签,每个标签都有很多 fragment 。但我只想让我的工具栏在 2 个特定选项卡中滚动 recyclerview 时向上/向下滚动。但我不知道如何阻止其他选项卡的工具栏滚动。我试图为每个 fragment 导入工具栏,但似乎我做不到。 有人有解决这个问题的想法吗?

最佳答案

我强烈建议不要根据选择的选项卡更改滚动标志 - 滚动到非回收站 View 选项卡时让工具栏自动返回(并且内容向下移动)可能非常不和谐,可能不是交互模式您想要的(如果您的两个 RecyclerView 选项卡彼此相邻,您会很生气)。

不过,如果你想亲眼看看,可以使用setScrollFlags()以编程方式设置滚动标志:

Toolbar toolbar = ... // your toolbar within an AppBarLayout
AppBarLayout.LayoutParams params = 
    (AppBarLayout.LayoutParams) toolbar.getLayoutParams();
params.setScrollFlags(AppBarLayout.LayoutParams.SCROLL_FLAG_SCROLL
    | AppBarLayout.LayoutParams.SCROLL_FLAG_ENTER_ALWAYS);

为了清除标志

params.setScrollFlags(0)

关于android - 如何设置应用程序 :layout_scrollFlags for Toolbar programmatically,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30771156/

相关文章:

Android 测试无法识别我的测试方法

Android 屏幕分辨率 px 和 dp

android - 如何在滑动 ViewPager2 选项卡时重新创建或刷新 fragment

java - 在我的 fragment 中还显示了主要 Activity 的布局

android - 使工具栏透明?

android - SharedPreferences.getInt() 导致 ClassCastException - 为什么?

java - 使用id查找元素获取信息并添加到数组android java

java - 字符串传递到不同 fragment 时不会更新?

android - 工具栏中的应用程序名称在添加 5 个项目时隐藏,如何始终在工具栏中显示应用程序名称?

android - 需要为某些 fragment 禁用 CollapsingToolbarLayout 上的展开