Вместо использования OnTabSelectedListener
вы должны использовать значки, которые меняются в зависимости от того, выбраны они или нет.
Если ваши значки являются векторными рисунками, вы можете использовать Список состояний цветов для автоматического изменения их цветов.Вот как это может выглядеть для значка карандаша:
- res / color / blue_when_selected.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true" android:color="#0000ff"/>
<item android:color="#aaaaaa"/>
</selector>
- res / drawable / ic_pencil.xml
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="@color/blue_when_selected"
android:pathData="M3,17.25V21h3.75L17.81,9.94l-3.75,-3.75L3,17.25z
M20.71,7.04c0.39,-0.39 0.39,-1.02 0,-1.41l-2.34,-2.34c-0.39,-0.39 -1.02,-0.39 -1.41,0l-1.83,1.83 3.75,3.75 1.83,-1.83z"/>
</vector>
Теперь, где бы вы ни настраивали значки вкладок, если вы используете R.drawable.ic_pencil
, вы увидите, что вы получаете автоматическое переключение цветов.
Если вашзначки - это файлы .png, тогда вы можете использовать список состояний для рисования для достижения того же эффекта.Представьте, что у вас есть res/drawable-mdpi/icon_normal.png
и res/drawable-mdpi/icon_selected.png
.Тогда вы можете получить это:
- res / drawable / icon.xml
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_selected="true"
android:drawable="@drawable/icon_selected"/>
<item
android:drawable="@drawable/icon_normal"/>
</selector>
Опять же, если вы используете R.drawable.icon
, вы увидите, что вы получитеавтоматическое переключение между двумя файлами .png.