带有标签和ViewPager的Android AppBarLayout

时间:2019-03-18 06:56:02

标签: android android-viewpager ripple

我的应用存在一个非常奇怪的问题。我有AppBarLayout,带有标签和ViewPager。我已经为ViewPager配置了所有内容,页面在单击选项卡时会切换,但是单击时选项卡(选项卡按钮)上的波纹效果会中断。当我将TabLayoutAppBarLayout中移出时,问题也消失了,当我将layout:paddingTop添加到AppBarLayout时,涟漪有时会显示出来,但除此之外,涟漪不会正常显示,除非在当前选择的标签上。

AppBarLayout:

<com.google.android.material.appbar.AppBarLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/app_bar_layout"
style="@style/Theme.appBarLayout">

<androidx.appcompat.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/toolbar"
    style="@style/Theme.toolbar"
    app:layout_scrollFlags="scroll|snap"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
    app:title="@string/app_name_text" />

<com.google.android.material.tabs.TabLayout
    android:id="@+id/home_tabs_layout"
    style="@style/Theme.tabs"
    app:tabIndicatorAnimationDuration="@android:integer/config_shortAnimTime"
    app:tabIndicatorColor="@color/primary_dark"
    app:tabIndicatorHeight="?attr/actionBarSize"
    app:tabMode="fixed"
    app:tabUnboundedRipple="false" />

ParentLayout:

<androidx.coordinatorlayout.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"
style="@style/Theme.home"
tools:context=".activities.HomeActivity">

<include
    layout="@layout/actionbar_tabbed"
    app:layout_behavior="@string/appbar_scrolling_view_behavior" />

<androidx.appcompat.widget.FitWindowsLinearLayout
    style="@style/Theme.home.container">


    <androidx.viewpager.widget.ViewPager
        android:id="@+id/home_view_pager"
        style="@style/Theme.pager"
        android:layout_below="@id/home_tabs_layout" />

</androidx.appcompat.widget.FitWindowsLinearLayout>

我还尝试重现了Android Studio为ViewPager标签创建的预先创建的活动的问题,其行为是相同的。

谢谢。

1 个答案:

答案 0 :(得分:0)

寻找以下xml代码

<com.google.android.material.tabs.TabLayout
            android:id="@+id/tabLayout"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            app:tabBackground="?attr/selectableItemBackgroundBorderless"
            app:tabGravity="fill"
            app:tabIndicatorHeight="0dp"
            app:tabMode="fixed"
            app:tabUnboundedRipple="true" />

请注意这两行

app:tabBackground="?attr/selectableItemBackgroundBorderless" OR app:tabBackground="?attr/selectableItemBackground

app:tabUnboundedRipple="true"