如何在滚动时将tablayout固定在顶部

时间:2017-11-09 11:40:51

标签: android xml layout material-design android-toolbar

我想在滚动时将标签布局固定在顶部,工具栏应隐藏。所以我使用下面的代码实现了这个,但问题是,当应用程序启动和活动创建它工作正常(滚动时固定在顶部)但移动到另一个片段并回来它不是固定在顶部它只是滚动像工具栏。我在片段上使用它,父家庭活动有noActionbar主题。有人可以帮忙吗? 这是我的xml文件代码:

<android.support.design.widget.CoordinatorLayout 
  xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:background="@drawable/background"
  tools:context="com.plowns.droidapp.activites.HomeActivity">

<android.support.v4.view.ViewPager
    android:id="@+id/viewpager"
    android:layout_width="match_parent"
    android:layout_height="fill_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior" />

<android.support.design.widget.AppBarLayout
    android:id="@+id/appbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:fitsSystemWindows="true"
    android:theme="@style/AppTheme.AppBarOverlay">

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/gradient_horizontal"
        android:contentInsetEnd="0dp"
        android:contentInsetLeft="0dp"
        android:contentInsetRight="0dp"
        android:contentInsetStart="0dp"
        app:contentInsetEnd="0dp"
        app:contentInsetLeft="0dp"
        app:contentInsetRight="0dp"
        app:contentInsetStart="0dp"
        app:layout_scrollFlags="scroll|enterAlways"
        app:popupTheme="@style/AppTheme.PopupOverlay">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <RelativeLayout
                android:id="@+id/rl_toolbar"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_marginTop="10dp"
                android:gravity="center_vertical">


                </RelativeLayout>

            </RelativeLayout>

    </android.support.v7.widget.Toolbar>

    <android.support.design.widget.TabLayout
        android:id="@+id/tabs"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/white"
        android:elevation="8dp"
        android:gravity="bottom"
        app:tabGravity="fill"
        app:tabIndicatorColor="@color/colorPrimary"
        app:tabIndicatorHeight="3dp"
        app:tabMode="scrollable"
        app:tabSelectedTextColor="@color/white"
        app:tabTextColor="@color/white" />

</android.support.design.widget.AppBarLayout>

1 个答案:

答案 0 :(得分:1)

您必须在TabLayout中将app:layout_collapseMode设置为pin

<android.support.design.widget.TabLayout
    android:id="@+id/tabs"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/white"
    android:elevation="8dp"
    android:gravity="bottom"
    app:tabGravity="fill"
    app:tabIndicatorColor="@color/colorPrimary"
    app:tabIndicatorHeight="3dp"
    app:tabMode="scrollable"
    app:tabSelectedTextColor="@color/white"
    app:layout_collapseMode="pin"
    app:tabTextColor="@color/white" />