Вкладка со значком с помощью TabLayout в библиотеке Android Design
Я пытаюсь использовать новый TabLayout в библиотеке дизайна Android для создания панели приложений только с значками.
вот так:
![enter image description here]()
как я могу это сделать, используя новую библиотеку дизайна Android TabLayout.
есть простое решение для этого, или я должен использовать только setCustomView. Я пытаюсь избежать его использования. потому что я не получил цвет оттенка для значка, подобного этому изображению выше.
Я пытаюсь написать вот так:
tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.ic_dashboard))
но значок все еще остается одного цвета, когда я выбираю вкладку
Ответы
Ответ 1
я решил это следующим образом:
tint_tab.xml
<com.hannesdorfmann.appkit.image.TintableImageView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:tint="@color/tab_color_selector"/>
в вашем java-коде
TintableImageView tab1 = (TintableImageView) LayoutInflater.from(this).inflate(R.layout.tint_tab, null);
tab1.setImageResource(R.drawable.ic_dummy);
mTabLayout.getTabAt(0).setCustomView(tab1)
ref: https://github.com/sockeqwe/appkit/blob/master/image/src/main/java/com/hannesdorfmann/appkit/image/TintableImageView.java
Ответ 2
вам нужно создать selector
для значка. Например:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_dashboard_pressed"
android:state_pressed="true" />
<item android:drawable="@drawable/ic_dashboard_selected"
android:state_selected="true" />
<item android:drawable="@drawable/ic_dashboard_normal" />
</selector>
Ответ 3
Я использовал его так:
создал xml файл в drawable, как показано @Budius.
в коде:
tabLayout.getTabAt(0).setIcon(R.drawable.settings_tab_drawable);
и т.д.