невозможно использовать уведомления с tablayout (тема материала cra sh) - PullRequest
0 голосов
/ 29 апреля 2020

У меня есть следующий макет

<androidx.coordinatorlayout.widget.CoordinatorLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <com.google.android.material.appbar.AppBarLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:theme="@style/AppTheme.AppBarOverlay">

            <com.google.android.material.tabs.TabLayout
                android:id="@+id/albumTabs"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                app:layout_behavior="@string/appbar_scrolling_view_behavior"
                app:tabBackground="@color/main_light_grey"
                app:tabGravity="fill"
                app:tabTextAppearance="@style/MyTabLayoutTextAppearance"
                app:tabIndicatorColor="@color/list_blue"
                app:tabIndicatorHeight="4dp"
                app:tabMode="fixed"
                app:tabPaddingEnd="0dp"
                app:tabPaddingStart="0dp"/>
        </com.google.android.material.appbar.AppBarLayout>

        <androidx.viewpager.widget.ViewPager
            android:id="@+id/albumTabPager"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@color/main_light_grey"
            app:layout_behavior="@string/appbar_scrolling_view_behavior" />
    </androidx.coordinatorlayout.widget.CoordinatorLayout>

Однако я пытаюсь добавить уведомление, и я использую следующий код

tab.getOrCreateBadge().setNumber(2);

, но я получаю сообщение об ошибке, что мне нужно убедитесь, что этот компонент использует тему материала или тему. Компонент com.google. android .material.tabs.TabLayout (моего приложения нет). Что я могу сделать?

, если я сделаю это

<com.google.android.material.tabs.TabLayout
    style="@style/Widget.MaterialComponents.TabLayout"

Затем произойдет сбой жаловаться на инфлятор. Это фрагмент. Что вы предлагаете мне сделать?

Спасибо

1 Ответ

0 голосов
/ 29 апреля 2020

Вы использовали BadgeDrawable ?


BadgeDrawable badgeDrawable = tabLayout.getTabAt(4).getOrCreateBadge();
badgeDrawable.setVisible(true);
badgeDrawable.setNumber(5);

...