Tablayout 和 Viewpager 之间的小填充

Posted

技术标签:

【中文标题】Tablayout 和 Viewpager 之间的小填充【英文标题】:Small padding between Tablayout and Viewpager 【发布时间】:2020-09-04 09:51:57 【问题描述】:

我正在尝试找出如何删除这条白色填充线:

我的activity:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_
    android:layout_
    android:orientation="vertical"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    tools:context=".activity.ShowUI">

    <androidx.appcompat.widget.Toolbar
        android:id="@+id/show_ui_toolbar"
        android:layout_
        android:layout_
        android:background="?attr/colorPrimary"
        android:theme="@style/AppTheme"
        app:layout_constraintTop_toTopOf="parent"
        app:titleTextColor="@android:color/white" />

    <com.google.android.material.tabs.TabLayout
        android:id="@+id/show_ui_tabLayout"
        android:layout_
        android:layout_
        android:minHeight="?actionBarSize"
        app:tabGravity="fill"
        app:tabIndicatorColor="@android:color/black"
        app:tabIndicatorHeight="2dp"
        app:tabBackground="@color/colorPrimary"
        app:tabMode="fixed">
    </com.google.android.material.tabs.TabLayout>

    <androidx.viewpager.widget.ViewPager
        android:id="@+id/show_ui_viewPager"
        android:layout_
        android:layout_>
    </androidx.viewpager.widget.ViewPager>

</LinearLayout>

我找不到问题出在哪里。谢谢!

【问题讨论】:

【参考方案1】:

只需从 TabLayout 中删除 android:minHeight="?actionBarSize"

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_
    android:layout_
    android:orientation="vertical"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    tools:context=".activity.ShowUI">

    <androidx.appcompat.widget.Toolbar
        android:id="@+id/show_ui_toolbar"
        android:layout_
        android:layout_
        android:background="?attr/colorPrimary"
        android:theme="@style/AppTheme"
        app:layout_constraintTop_toTopOf="parent"
        app:titleTextColor="@android:color/white" />

    <com.google.android.material.tabs.TabLayout
        android:id="@+id/show_ui_tabLayout"
        android:layout_
        android:layout_
        app:tabGravity="fill"
        app:tabIndicatorColor="@android:color/black"
        app:tabIndicatorHeight="2dp"
        app:tabBackground="@color/colorPrimary"
        app:tabMode="fixed">
    </com.google.android.material.tabs.TabLayout>

    <androidx.viewpager.widget.ViewPager
        android:id="@+id/show_ui_viewPager"
        android:layout_
        android:layout_>
    </androidx.viewpager.widget.ViewPager>

</LinearLayout>

或者,您可以将 TabLayout 的高度设置为 ?actionBarSize 而不是像这样将其指定为 minHeight

<LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_
        android:layout_
        android:orientation="vertical"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        tools:context=".activity.ShowUI">

        <androidx.appcompat.widget.Toolbar
            android:id="@+id/show_ui_toolbar"
            android:layout_
            android:layout_
            android:background="?attr/colorPrimary"
            android:theme="@style/AppTheme"
            app:layout_constraintTop_toTopOf="parent"
            app:titleTextColor="@android:color/white" />

        <com.google.android.material.tabs.TabLayout
            android:id="@+id/show_ui_tabLayout"
            android:layout_
            android:layout_
            app:tabGravity="fill"
            app:tabIndicatorColor="@android:color/black"
            app:tabIndicatorHeight="2dp"
            app:tabBackground="@color/colorPrimary"
            app:tabMode="fixed">
        </com.google.android.material.tabs.TabLayout>

        <androidx.viewpager.widget.ViewPager
            android:id="@+id/show_ui_viewPager"
            android:layout_
            android:layout_>
        </androidx.viewpager.widget.ViewPager>

    </LinearLayout>

【讨论】:

以上是关于Tablayout 和 Viewpager 之间的小填充的主要内容,如果未能解决你的问题,请参考以下文章

在 TabLayout 中的片段之间滑动变慢

如何在 Android 中使用 TabLayout 和 ViewPager2

如何从(和替换)TabLayout 和 ViewPager 移动到新片段?

TabLayout 和ViewPager联动

TabLayout +ViewPager 自定义Tab的UI

使用ViewPager和TabLayout与Xamarin时出错