将View放在TabPage下的ViewPager中

时间:2018-08-27 14:17:59

标签: android android-viewpager android-tablayout

我正在寻找一种将view中的ViewPager放在TabBar下方的方法。 我不希望它出现在每个fragment中,因为每次我更改当前片段时,它都会滚动。我需要在没有动画的情况下将视图固定在那里。

这就是我现在将View放入我的TabLayout [code + img]

enter image description here

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

        <android.support.design.widget.TabLayout
            android:id="@+id/mTabLayout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:tabBackground="@color/colorPrimary"
            app:tabGravity="fill"
            app:tabMode="fixed"
            app:tabSelectedTextColor="@color/colorAccent"
            app:tabTextColor="@color/white">

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="end"
                android:background="@drawable/background_accent_fading"
                android:paddingBottom="5dp"
                android:paddingEnd="5dp"
                android:paddingTop="5dp"
                android:text="RIPASSO"
                android:textAlignment="textEnd"
                android:textColor="@color/white"
                android:textStyle="bold" />

        </android.support.design.widget.TabLayout>
    </android.support.v4.view.ViewPager>

这就是我正在寻找的

如您所见,RIPASSO在我的标签下方,但已在此处固定。

是否有获取途径?我什么都没找到

enter image description here

2 个答案:

答案 0 :(得分:1)

您的TabLayout不能是ViewPager的子级。

<LinearLayout
    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:fitsSystemWindows="true"
    android:orientation="vertical">
    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/AppTheme">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">
            <android.support.design.widget.TabLayout
                android:id="@+id/tabs"
                android:layout_width="match_parent"
                android:layout_height="?android:actionBarSize"
                style="@style/AppTabLayout"
                app:tabTextAppearance="@style/AppTabTextAppearance"
                app:layout_behavior="@string/appbar_scrolling_view_behavior"
                app:tabMode="fixed"
                app:tabGravity="fill"/>
            <!--here put your view, the one you want to appear in all pages.-->
        </LinearLayout>
    </android.support.design.widget.AppBarLayout>
    <FrameLayout
        android:id="@+id/popup_holder"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <android.support.v4.view.ViewPager
            android:id="@+id/viewpager"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:layout_behavior="@string/appbar_scrolling_view_behavior"
            android:background="@android:color/white"/>
    </FrameLayout>
</LinearLayout>

答案 1 :(得分:0)

您可以使用默认的android标签,请按照以下步骤操作: 右键单击应用程序>新建>活动>选项卡式活动。 它将为您创造一切。 如果要更改背景颜色的颜色-下划线颜色或文本颜色。 您可以使用XML或用户

TabLayout tabLayout = binding.tabs;
    tabLayout.setupWithViewPager(mViewPager);
    tabLayout.setTabTextColors(getResources().getColor(R.color.white), getResources().getColor(R.color.white));