Android AppBarLayout с вкладками и ViewPager - PullRequest
0 голосов
/ 18 марта 2019

У меня действительно странная проблема с моим приложением. У меня AppBarLayout с вкладками и ViewPager. Я настроил все для ViewPager, страницы переключаются при нажатии на вкладки, но эффект пульсации на вкладках (кнопках вкладок) прерывается при нажатии. Проблема исчезает, когда я перемещаю TabLayout из AppBarLayout, также, когда я добавляю 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 голосов
/ 18 марта 2019

Найдите приведенный ниже код 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"
...