Установить цвет текста только одну вкладку на вкладке - PullRequest
0 голосов
/ 30 марта 2020

Я хочу установить textColor только одну вкладку на вкладке. Одна вкладка должна иметь другой цвет по умолчанию. Вот моя вкладка в XML

 <com.google.android.material.tabs.TabLayout
        android:id="@+id/tabs_main"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:tabTextColor="@color/colorWhite"
        app:tabIndicatorColor="@color/colorPrimary"
        android:background="@color/colorBackground"
        app:tabMode="fixed" />

Она делает все вкладки белыми. Я пробовал это:

tabs_main.getTabAt(3)?.icon?.alpha = 225

но это не работает Как я могу изменить цвет одной вкладки?

1 Ответ

1 голос
/ 30 марта 2020

С помощью alpha вы изменяете непрозрачность внутреннего текста, а не цвета.

Если это то, чего вы хотите достичь, то проверьте, не возвращается ли tabs_main.getTabAt(3) 1007 * нуль *.

В противном случае я предлагаю вам использовать пользовательский TextView внутри элемента вкладки.

Пример:

Создать макет: custom_text_view. xml

  <?xml version="1.0" encoding="utf-8"?>
  <TextView xmlns:android="http://schemas.android.com/apk/res/android"
      android:id="@+id/customTabTextView"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:gravity="center"
      android:textColor="@color/your_color"
      android:textSize="14sp" />

Добавьте макет в качестве пользовательского представления для каждого элемента вкладки и выберите для каждого из них требуемый textColor.

    (0..tabLayout.tabCount).forEach { position ->
        val customTextView = LayoutInflater.from(this).inflate(R.layout.custom_text_view, null)
        // Set the text color
        customTextView.setTextColor(ContextCompat.getColor(applicationContext, R.color.<name_of_color>))
        tabLayout.getTabAt(position)?.customView = customTextView
    }
...