我正在调查在向下滚动时固定TabLayout
中CoordinatorLayout
的标签指示器的方法。
如果我向scroll|enterAlwaysCollapsed
添加TabLayout
标记,则向下滚动时tablayout本身会消失。我希望标签指示条固定在屏幕顶部。
有没有办法实现这个?
答案 0 :(得分:0)
我认为你根本就没有旗帜。你的布局应该是这样的:
<CoordinatorLayout>
<AppBarLayout>
<Toolbar app:layout_scrollFlags="scroll|enterAlways" />
<TabLayout/>
</AppBarLayout>
< /> <!-- ViewPager or other stuff -->
</CoordinatorLayout>
如果您将scroll
标志分配给TabLayout
,它将开始响应滚动手势,并根据您的标记移动/进入/退出。据我了解你的问题,你没有希望它移动,所以只需删除标记。
请参阅here以供参考。
答案 1 :(得分:0)
您应该为Behavior
或TabLayout
提供自定义AppBarLayout
(仅当TabLayout
仅为AppBarLayout
的孩子时),您将在其中翻译TabLayout
到-mTabLayout.getHeight() + mTabIndicatorHeight
的y。如果你偏离顶部和底部,你应该这样做。
目前,TabLayout
没有@DefaultBehavior
,它由AppBarLayout
行为翻译。这是滚动范围总量(具有滚动标记的视图高度之和)的顶部和底部偏差。