Вкладка со значком с помощью TabLayout в библиотеке Android Design

Я пытаюсь использовать новый TabLayout в библиотеке дизайна Android для создания панели приложений только с иконками.

как это: Введите описание изображения здесь

Как я могу это сделать, используя новую библиотеку дизайна Android TabLayout.

Есть ли простое решение для этого, или я должен использовать только setCustomView. Я пытаюсь избежать его использования. Потому что я не получил цвет оттенка для значка, подобного этому изображению выше.

Я пытаюсь написать вот так:

tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.ic_dashboard)) 

Но значок остается в том же цвете, когда я выбираю вкладку

Вам нужно создать 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> 

Я использовал его так: создал xml-файл в drawable, как показано @Budius.

В коде: tabLayout.getTabAt(0).setIcon(R.drawable.settings_tab_drawable);

и так далее.

Я решил это следующим образом:

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

Intereting Posts
Android SimpleDateFormat возвращает неправильное время между полуночью и 1 утра Не удается выполнить запросFocus Spinner Как установить цвет фона WebView на шестнадцатеричное значение? Получить строку из локали по умолчанию, используя строку в определенной локали Glide force загружает кешированное изображение, не волнует, какое разрешение Javax.net.ssl.SSLException: имя хоста в сертификате не соответствует андроиду Функция Android action.MAIN и category.LAUNCHER Вход Android WebView на Android Индикатор выполнения для многостраничной загрузки с несколькими файлами Android Пользовательский вид с кнопками реализует OnGestureListener Можно ли заблокировать тег NFC, а затем разблокировать и записать данные еще раз? «Почему Apache Harmony» или «Как использовать Java 8 на Android» После отключения приложения Google Диском Android API по-прежнему возвращает успешные результаты, но не загружает файл Возвращает ли EditText.getText () значение null? Расширение ArrayAdapter в Android