Плавная анимация между вкладками при использовании селектора - Android - PullRequest
1 голос
/ 24 сентября 2019

Я бы хотел, чтобы фон вкладки плавно анимировался в выбранной позиции (точно так же, как по умолчанию tabIndicator анимирует между вкладками).

Вот как мой TabLayout выглядит как

<android.support.design.widget.TabLayout
        android:layout_marginTop="10dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/tabLayout"
        app:tabBackground="@drawable/tab_selector"
        app:tabTextColor="@color/white"
        android:background="@drawable/tab_layout_bg"         
    app:tabTextAppearance="@android:style/TextAppearance.Widget.TabWidget"
        app:tabIndicator="@null"
        app:tabRippleColor="@null">

        <android.support.design.widget.TabItem
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/tab1"/>

        <android.support.design.widget.TabItem
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/tab2"/>

        <android.support.design.widget.TabItem
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/tab3"/>

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

enter image description here

Здесь выбирается Tab 3.Если я выберу Tab 1 фон должен анимироваться от Tab 3 до Tab 1.

Я использую селектор, чтобы изменить фон вкладок.

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:state_selected="true"
        android:drawable="@drawable/tab_layout_fg"/>
    <item
        android:drawable="@drawable/tab_layout_bg"/>
</selector>

Здесь я прилагаюобразец анимации.Смотрите только панель вкладок.

enter image description here

Возможно ли добиться такого рода анимации с подходом, которому я следую?Если нет, предложите мне другой способ.Я работаю над этим с двух дней.До сих пор не могу понять.

Заранее спасибо.

1 Ответ

0 голосов
/ 28 сентября 2019

Это не совсем то, что вы хотите, но здесь является очень хорошим примером того, как подобное можно сделать с помощью кода и рисунков того, как это будет выглядеть.

Надеюсь, это поможет.

...