TabLayout的标签选择指示器在滚动时是否可以固定在屏幕顶部?

时间:2015-06-27 07:40:05

标签: android material-design android-design-library android-coordinatorlayout android-tablayout

我正在调查在向下滚动时固定TabLayoutCoordinatorLayout的标签指示器的方法。

如果我向scroll|enterAlwaysCollapsed添加TabLayout标记,则向下滚动时tablayout本身会消失。我希望标签指示条固定在屏幕顶部。

有没有办法实现这个?

enter image description here

2 个答案:

答案 0 :(得分:0)

我认为你根本就没有旗帜。你的布局应该是这样的:

<CoordinatorLayout>
    <AppBarLayout>

        <Toolbar app:layout_scrollFlags="scroll|enterAlways" />
        <TabLayout/>

    </AppBarLayout>

    < /> <!-- ViewPager or other stuff -->
</CoordinatorLayout>

如果您将scroll标志分配给TabLayout,它将开始响应滚动手势,并根据您的标记移动/进入/退出。据我了解你的问题,你没有希望它移动,所以只需删除标记。

请参阅here以供参考。

答案 1 :(得分:0)

您应该为BehaviorTabLayout提供自定义AppBarLayout(仅当TabLayout仅为AppBarLayout的孩子时),您将在其中翻译TabLayout-mTabLayout.getHeight() + mTabIndicatorHeight的y。如果你偏离顶部和底部,你应该这样做。

目前,TabLayout没有@DefaultBehavior,它由AppBarLayout行为翻译。这是滚动范围总量(具有滚动标记的视图高度之和)的顶部和底部偏差。