1

I am investigating the way to pin the tab indicator of TabLayout in CoordinatorLayout while scrolling down.

If I add scroll|enterAlwaysCollapsed flag to the TabLayout, then the tablayout itself is dissappeared while scrolling down. I want tab indicator bar be pinned to the top of the screen.

Is there a way to implement this?

enter image description here

4

2 回答 2

0

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

<CoordinatorLayout>
    <AppBarLayout>

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

    </AppBarLayout>

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

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

请参阅此处以供参考。

于 2015-06-27T08:11:09.720 回答
0

您应该为您的 or 提供您的自定义BehaviorTabLayoutAppBarLayoutTabLayout是 的唯一子级时AppBarLayout),您将在其中将 y 转换TabLayout-mTabLayout.getHeight() + mTabIndicatorHeight. 如果您使用偏移顶部和底部,您应该这样做。

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

于 2015-06-27T14:51:19.787 回答