Настройка формы фона для значка вкладки при выборе Android

#java #android #xml #android-layout #tabs

#java #Android #xml #android-макет #вкладки

Вопрос:

Я новичок в android и java . Я использую tab layout в своем приложении. Это выглядит следующим образом

Мой макет вкладки

Мой код макета вкладки в XML:

 <com.google.android.material.tabs.TabLayout
        android:id="@ id/tabs"
        android:background="#F7F7F7"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:tabMode="scrollable"
        app:tabBackground="@drawable/tab_selector"
        app:tabTextColor="@color/tab_text_unselected_color"
        app:tabSelectedTextColor="@color/tab_text_selected_color"
        app:tabIndicator="@drawable/custom_tab_indicator"
        app:tabIndicatorColor="@color/tab_indicator_color"
        app:tabIndicatorFullWidth="false"
        app:tabIndicatorHeight="5dp"
        app:tabTextAppearance="@style/MineCustomTabText"
        app:tabIconTint="@color/custom_tab_icon_color_setter"
        tools:ignore="MissingConstraints">
  

Чертежи:
tab_selector.xml :

 <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:drawable="@color/tab_selected_color"
        android:state_selected="true"/>
    <item
        android:drawable="@color/tab_unselected_color"
        android:state_selected="false"/>
</selector>
  

custom_tab_indicator.xml :

 <?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="@color/colorAccent" />
    <corners
        android:bottomLeftRadius="0dp"
        android:bottomRightRadius="0dp"
        android:topLeftRadius="10dp"
        android:topRightRadius="10dp" />
</shape>
  

Стили:

 <style name="MineCustomTabText" parent="TextAppearance.Design.Tab">
        <item name="android:textSize">10sp</item>
</style>
  

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

мой требуемый макет

Вот форма круга:

 <?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">
    <solid android:color="@color/colorPrimary"/>

</shape>
  

Я не знаю, как этого добиться. Пожалуйста, помогите мне с некоторыми решениями.

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

custom_tab_icon_color_setter:-

 <selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:background="@drawable/cirle_shape" android:color="@color/tab_icon_selected_color"  android:state_selected="true"/>
    <item android:color="@color/tab_icon_unselected_color"/>
</selector>
  

Но ничего не меняется. Пожалуйста, помогите мне с некоторыми решениями для достижения этой цели

Ответ №1:

Просто добавьте этот фон в свой вид

android:background=?android:attr /actionBarItemBackground

Нет необходимости создавать какой-либо файл shape res. Добавьте этот фон в представление, которое вы хотите отобразить фоном.

Комментарии:

1. Спасибо за ответ… Никаких изменений… это не сработало…