Изменить цвет TabLayout, выбранного в Android Studio - PullRequest
0 голосов
/ 04 сентября 2018

Я новичок в Android Studio, и на этой странице мне нужно знать, как изменить цвет при выборе вкладки.

Я пытался из дизайна, но я не удалась. Вот код:

android:id="@+id/tab_layout_home"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/logo_home"
android:background="@null"
android:visibility="visible"
app:layout_scrollFlags="enterAlways"
app:tabGravity="center"
app:tabPaddingBottom="0dp"
app:tabPaddingEnd="@dimen/content_inset_half"
app:tabPaddingStart="@dimen/content_inset_half"
app:tabPaddingTop="0dp"
app:tabTextColor="@color/tab_text_color_selector"
app:tabSelectedTextColor="@color/colorWindowsBackgroundLight"

Ответы [ 3 ]

0 голосов
/ 04 сентября 2018

Попробуйте это:

XML-код Расположение вкладок

<android.support.design.widget.TabLayout
android:id="@+id/tab_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentStart="true"
android:layout_gravity="bottom"
android:background="@color/button_background"
android:fillViewport="true"
app:tabBackground="@drawable/fixed_bottom_button"
app:tabIndicatorColor="@color/color_primary_text"
app:tabMode="fixed"
app:tabSelectedTextColor="@color/color_primary_text"
app:tabTextColor="@color/color_secondary_text" />

Добавьте два атрибута в макет вашей вкладки, как это

app:tabSelectedTextColor="@color/color_primary_text"
app:tabTextColor="@color/color_secondary_text"

Java-код

tabLayout.setSelectedTabIndicatorColor(Color.parseColor("#FF0000"));
tabLayout.setSelectedTabIndicatorHeight((int) (5 * getResources().getDisplayMetrics().density));
tabLayout.setTabTextColors(Color.parseColor("#727272"), Color.parseColor("#ffffff"));

тебе это поможет

0 голосов
/ 05 сентября 2018

Ну, спасибо за поддержку с вашими ответами, я использовал много всей информации, которую нашел, но проблема была в том, что я не использовал setText() в методе getTabAt(), я использовал setCustomView() это был пользовательский вид в xml, поэтому он не менял цвет или методы tabSelectedTextColor() явно не работали. Просто удалите пользовательский дизайн и используйте родной, вручную вводя заголовок для вкладок, и с этим я работал.

0 голосов
/ 04 сентября 2018

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

1 ... Вы можете просто сделать это в своем коде так:

 tabLayout.setSelectedTabIndicatorColor(Color.parseColor("#FF0000"));
    tabLayout.setSelectedTabIndicatorHeight((int) (5 * getResources().getDisplayMetrics().density));
    tabLayout.setTabTextColors(Color.parseColor("#727272"), Color.parseColor("#ffffff"));

2 ... Вы также можете сделать это в своем XML. Добавьте следующее на вашу вкладку

app:tabSelectedTextColor="@color/color_primary_text"
app:tabTextColor="@color/color_secondary_text"

Ваш tablayout в xml наконец будет выглядеть так

android:id="@+id/tab_layout_home"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/logo_home"
android:background="@null"
android:visibility="visible"
app:layout_scrollFlags="enterAlways"
app:tabGravity="center"
app:tabPaddingBottom="0dp"
app:tabPaddingEnd="@dimen/content_inset_half"
app:tabPaddingStart="@dimen/content_inset_half"
app:tabPaddingTop="0dp"
app:tabTextColor="@color/tab_text_color_selector"
app:tabSelectedTextColor="@color/colorWindowsBackgroundLight"
app:tabSelectedTextColor="@color/color_primary_text"
app:tabTextColor="@color/color_secondary_text" />
...