Я пытаюсь установить цвет текста на скользящих вкладках в пользовательском представлении в соответствии с состоянием табуляции. Он работает, но не на начальном дисплее.Настройка цвета текста в пользовательском представлении скользящей вкладки на первом дисплее
TextColor в настраиваемое представление должно быть белый когда вкладка выбран и темно-серым иначе. Я частично отработал: когда я вручную выбираю вкладку, цвет текста изменяется правильно.
Моя проблема заключается в том, что на первом экране текст первой вкладке , содержание которого отображается изначально и до какого-либо взаимодействия пользователя с вкладками, является не окрашиваются в активном состоянии цвета (белый). Его серый, как и неактивные вкладки. Если я начну взаимодействовать с вкладками, все будет работать, но исходный цвет вкладки первой отображаемой вкладки неверен.
[FIRST TAB | SECOND TAB]
^
Grey (inactive color) on first load
EDIT: Причина, кажется, в styles.xml: если я открою свой стиль, который наследует от Widget.Design.TabLayout начальная окраска больше не работает. Если я не объявляю пользовательские стили для tablayout, все работает отлично!
EDIT2: Нет, это не сработало. Он работает без настройки пользовательского представления, но при первоначальной загрузке вкладок с настройкой пользовательского представления он по-прежнему не выполняет первоначальную раскраску.
Вот мой код:
tab_gallerylayout.xml (пользовательский вид вкладки)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.mbprojects.retro.view.RetroTextView
android:id="@+id/tab_title"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:textColor="@drawable/gallerytab_title_color"
app:font="@string/font_name_syncopate"
/>
</LinearLayout>
gallerytab_title_color.xml (селектор)
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true" android:color="@android:color/white" />
<item android:state_selected="false" android:color="@android:color/darker_gray" />
<item android:state_focused="true" android:color="@android:color/white" />
<item android:state_pressed="true" android:color="@android:color/white" />
<item android:color="@android:color/darker_grey" />
</selector>
styles.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="AppTheme" parent="@style/Theme.AppCompat.NoActionBar">
</style>
<style name="AppTheme.Base.Widget.Design.TabLayout" parent="Widget.Design.TabLayout">
<item name="tabMaxWidth">@dimen/tab_max_width</item>
<item name="tabIndicatorColor">@android:color/white</item>
<item name="tabIndicatorHeight">0dp</item>
<item name="tabPaddingStart">12dp</item>
<item name="tabPaddingEnd">12dp</item>
<item name="tabBackground">@android:color/black</item>
<item name="tabTextAppearance">@style/TextAppearance.Design.Tab</item>
</style>
Любые предложения?
Любопытно, если вы когда-либо находили решение этого. У меня такая ТОЧНАЯ проблема. При первоначальном запуске «выбранное» состояние окажется неправильным. Щелчок на вкладке и обратно на нее работает просто отлично. –
Нет, к сожалению, нет. Я сдался, так как потребовалось слишком много времени. Я принимал расцветку по умолчанию при использовании пользовательского представления. Если вы найдете решение, сообщите мне об этом;) –