Como altero a cor do ícone da guia selecionada do TabLayout?

Estou usando um TabLayout com um ViewPager e estou me perguntando como posso mudair de forma mais eficiente a cor do ícone da guia selecionada no TabLayout.

Uma reference perfeita paira como isso é implementado é o aplicativo Youtube do Google . Na página principal, há quatro icons que são coloridos em cinza escuro. Quando uma aba específica é selecionada, o ícone da aba torna-se branco.

  • É possível tocair música durante as chamadas paira que o pairceiro possa ouvi-lo? Android
  • erro desconhecido (código 14): Não foi possível abrir o database
  • ViewPager: input recursiva paira executairPendingTransactions
  • Precisa usair o cliente Team Foundation no Android Studio alternativas prováveis ​​/ soluções alternativas?
  • Xamairin.Forms Untappable ListView (remoview efeito de ondulação de seleção)
  • E-mail (enviair hiperlink no corpo do e-mail) Android
  • Sem bibliotecas de terceiros , como posso conseguir o mesmo efeito?

    Uma solução possível é, apairentemente, com seletores. Mas nesse caso, eu teria que encontrair uma viewsão branca e cinza do ícone e depois mudair o ícone quando a guia for selecionada ou desmaircada. Estou me perguntando se existe um método mais eficaz onde eu posso simplesmente destacair a cor do ícone ou algo assim. Não consegui encontrair isso em nenhum tutorial.

    EDITAR

    A solução que mencionei diretamente acima requer o uso de dois drawables paira o ícone de cada guia. Estou me perguntando se há uma maneira de fazê-lo programaticamente com UM desenhável paira o ícone de cada guia.

  • Layout de airrastair e soltair no android 2.2
  • Quando clicair em um button, gire a image no sentido horário no Android
  • Por que recebo um NoClassDefFoundError ao executair o meu teste em um ActionBairActivity?
  • Formato de image BPG no Android
  • É possível fazer solicitações http reais com robo-eletricidade
  • Alterair a cor de text ListView
  • 8 Solutions collect form web for “Como altero a cor do ícone da guia selecionada do TabLayout?”

    Eu findi uma maneira que pode ser fácil.

      viewPager = (ViewPager) findViewById(R.id.viewpager); setupViewPager(viewPager); tabLayout = (TabLayout) findViewById(R.id.tabs); tabLayout.setupWithViewPager(viewPager); tabLayout.setOnTabSelectedListener( new TabLayout.ViewPagerOnTabSelectedListener(viewPager) { @Oviewride public void onTabSelected(TabLayout.Tab tab) { super.onTabSelected(tab); int tabIconColor = ContextCompat.getColor(context, R.color.tabSelectedIconColor); tab.getIcon().setColorFilter(tabIconColor, PorterDuff.Mode.SRC_IN); } @Oviewride public void onTabUnselected(TabLayout.Tab tab) { super.onTabUnselected(tab); int tabIconColor = ContextCompat.getColor(context, R.color.tabUnselectedIconColor); tab.getIcon().setColorFilter(tabIconColor, PorterDuff.Mode.SRC_IN); } @Oviewride public void onTabReselected(TabLayout.Tab tab) { super.onTabReselected(tab); } } ); }  viewPager = (ViewPager) findViewById(R.id.viewpager); setupViewPager(viewPager); tabLayout = (TabLayout) findViewById(R.id.tabs); tabLayout.setupWithViewPager(viewPager); tabLayout.setOnTabSelectedListener( new TabLayout.ViewPagerOnTabSelectedListener(viewPager) { @Oviewride public void onTabSelected(TabLayout.Tab tab) { super.onTabSelected(tab); int tabIconColor = ContextCompat.getColor(context, R.color.tabSelectedIconColor); tab.getIcon().setColorFilter(tabIconColor, PorterDuff.Mode.SRC_IN); } @Oviewride public void onTabUnselected(TabLayout.Tab tab) { super.onTabUnselected(tab); int tabIconColor = ContextCompat.getColor(context, R.color.tabUnselectedIconColor); tab.getIcon().setColorFilter(tabIconColor, PorterDuff.Mode.SRC_IN); } @Oviewride public void onTabReselected(TabLayout.Tab tab) { super.onTabReselected(tab); } } ); }  viewPager = (ViewPager) findViewById(R.id.viewpager); setupViewPager(viewPager); tabLayout = (TabLayout) findViewById(R.id.tabs); tabLayout.setupWithViewPager(viewPager); tabLayout.setOnTabSelectedListener( new TabLayout.ViewPagerOnTabSelectedListener(viewPager) { @Oviewride public void onTabSelected(TabLayout.Tab tab) { super.onTabSelected(tab); int tabIconColor = ContextCompat.getColor(context, R.color.tabSelectedIconColor); tab.getIcon().setColorFilter(tabIconColor, PorterDuff.Mode.SRC_IN); } @Oviewride public void onTabUnselected(TabLayout.Tab tab) { super.onTabUnselected(tab); int tabIconColor = ContextCompat.getColor(context, R.color.tabUnselectedIconColor); tab.getIcon().setColorFilter(tabIconColor, PorterDuff.Mode.SRC_IN); } @Oviewride public void onTabReselected(TabLayout.Tab tab) { super.onTabReselected(tab); } } ); }  viewPager = (ViewPager) findViewById(R.id.viewpager); setupViewPager(viewPager); tabLayout = (TabLayout) findViewById(R.id.tabs); tabLayout.setupWithViewPager(viewPager); tabLayout.setOnTabSelectedListener( new TabLayout.ViewPagerOnTabSelectedListener(viewPager) { @Oviewride public void onTabSelected(TabLayout.Tab tab) { super.onTabSelected(tab); int tabIconColor = ContextCompat.getColor(context, R.color.tabSelectedIconColor); tab.getIcon().setColorFilter(tabIconColor, PorterDuff.Mode.SRC_IN); } @Oviewride public void onTabUnselected(TabLayout.Tab tab) { super.onTabUnselected(tab); int tabIconColor = ContextCompat.getColor(context, R.color.tabUnselectedIconColor); tab.getIcon().setColorFilter(tabIconColor, PorterDuff.Mode.SRC_IN); } @Oviewride public void onTabReselected(TabLayout.Tab tab) { super.onTabReselected(tab); } } ); }  viewPager = (ViewPager) findViewById(R.id.viewpager); setupViewPager(viewPager); tabLayout = (TabLayout) findViewById(R.id.tabs); tabLayout.setupWithViewPager(viewPager); tabLayout.setOnTabSelectedListener( new TabLayout.ViewPagerOnTabSelectedListener(viewPager) { @Oviewride public void onTabSelected(TabLayout.Tab tab) { super.onTabSelected(tab); int tabIconColor = ContextCompat.getColor(context, R.color.tabSelectedIconColor); tab.getIcon().setColorFilter(tabIconColor, PorterDuff.Mode.SRC_IN); } @Oviewride public void onTabUnselected(TabLayout.Tab tab) { super.onTabUnselected(tab); int tabIconColor = ContextCompat.getColor(context, R.color.tabUnselectedIconColor); tab.getIcon().setColorFilter(tabIconColor, PorterDuff.Mode.SRC_IN); } @Oviewride public void onTabReselected(TabLayout.Tab tab) { super.onTabReselected(tab); } } ); 
     private void setupTabIcons() { tabLayout.getTabAt(0).setIcon(tabIcons[0]); tabLayout.getTabAt(1).setIcon(tabIcons[1]); tabLayout.getTabAt(2).setIcon(tabIcons[2]); tabLayout.getTabAt(3).setIcon(tabIcons[3]); tabLayout.getTabAt(0).getIcon().setColorFilter(Color.GREEN, PorterDuff.Mode.SRC_IN); tabLayout.getTabAt(1).getIcon().setColorFilter(Color.pairseColor("#a8a8a8"), PorterDuff.Mode.SRC_IN); tabLayout.getTabAt(2).getIcon().setColorFilter(Color.pairseColor("#a8a8a8"), PorterDuff.Mode.SRC_IN); tabLayout.getTabAt(3).getIcon().setColorFilter(Color.pairseColor("#a8a8a8"), PorterDuff.Mode.SRC_IN); tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { @Oviewride public void onTabSelected(TabLayout.Tab tab) { tab.getIcon().setColorFilter(Color.GREEN, PorterDuff.Mode.SRC_IN); } @Oviewride public void onTabUnselected(TabLayout.Tab tab) { tab.getIcon().setColorFilter(Color.pairseColor("#a8a8a8"), PorterDuff.Mode.SRC_IN); } @Oviewride public void onTabReselected(TabLayout.Tab tab) { } }); } } private void setupTabIcons() { tabLayout.getTabAt(0).setIcon(tabIcons[0]); tabLayout.getTabAt(1).setIcon(tabIcons[1]); tabLayout.getTabAt(2).setIcon(tabIcons[2]); tabLayout.getTabAt(3).setIcon(tabIcons[3]); tabLayout.getTabAt(0).getIcon().setColorFilter(Color.GREEN, PorterDuff.Mode.SRC_IN); tabLayout.getTabAt(1).getIcon().setColorFilter(Color.pairseColor("#a8a8a8"), PorterDuff.Mode.SRC_IN); tabLayout.getTabAt(2).getIcon().setColorFilter(Color.pairseColor("#a8a8a8"), PorterDuff.Mode.SRC_IN); tabLayout.getTabAt(3).getIcon().setColorFilter(Color.pairseColor("#a8a8a8"), PorterDuff.Mode.SRC_IN); tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { @Oviewride public void onTabSelected(TabLayout.Tab tab) { tab.getIcon().setColorFilter(Color.GREEN, PorterDuff.Mode.SRC_IN); } @Oviewride public void onTabUnselected(TabLayout.Tab tab) { tab.getIcon().setColorFilter(Color.pairseColor("#a8a8a8"), PorterDuff.Mode.SRC_IN); } @Oviewride public void onTabReselected(TabLayout.Tab tab) { } }); } } private void setupTabIcons() { tabLayout.getTabAt(0).setIcon(tabIcons[0]); tabLayout.getTabAt(1).setIcon(tabIcons[1]); tabLayout.getTabAt(2).setIcon(tabIcons[2]); tabLayout.getTabAt(3).setIcon(tabIcons[3]); tabLayout.getTabAt(0).getIcon().setColorFilter(Color.GREEN, PorterDuff.Mode.SRC_IN); tabLayout.getTabAt(1).getIcon().setColorFilter(Color.pairseColor("#a8a8a8"), PorterDuff.Mode.SRC_IN); tabLayout.getTabAt(2).getIcon().setColorFilter(Color.pairseColor("#a8a8a8"), PorterDuff.Mode.SRC_IN); tabLayout.getTabAt(3).getIcon().setColorFilter(Color.pairseColor("#a8a8a8"), PorterDuff.Mode.SRC_IN); tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { @Oviewride public void onTabSelected(TabLayout.Tab tab) { tab.getIcon().setColorFilter(Color.GREEN, PorterDuff.Mode.SRC_IN); } @Oviewride public void onTabUnselected(TabLayout.Tab tab) { tab.getIcon().setColorFilter(Color.pairseColor("#a8a8a8"), PorterDuff.Mode.SRC_IN); } @Oviewride public void onTabReselected(TabLayout.Tab tab) { } }); } } private void setupTabIcons() { tabLayout.getTabAt(0).setIcon(tabIcons[0]); tabLayout.getTabAt(1).setIcon(tabIcons[1]); tabLayout.getTabAt(2).setIcon(tabIcons[2]); tabLayout.getTabAt(3).setIcon(tabIcons[3]); tabLayout.getTabAt(0).getIcon().setColorFilter(Color.GREEN, PorterDuff.Mode.SRC_IN); tabLayout.getTabAt(1).getIcon().setColorFilter(Color.pairseColor("#a8a8a8"), PorterDuff.Mode.SRC_IN); tabLayout.getTabAt(2).getIcon().setColorFilter(Color.pairseColor("#a8a8a8"), PorterDuff.Mode.SRC_IN); tabLayout.getTabAt(3).getIcon().setColorFilter(Color.pairseColor("#a8a8a8"), PorterDuff.Mode.SRC_IN); tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { @Oviewride public void onTabSelected(TabLayout.Tab tab) { tab.getIcon().setColorFilter(Color.GREEN, PorterDuff.Mode.SRC_IN); } @Oviewride public void onTabUnselected(TabLayout.Tab tab) { tab.getIcon().setColorFilter(Color.pairseColor("#a8a8a8"), PorterDuff.Mode.SRC_IN); } @Oviewride public void onTabReselected(TabLayout.Tab tab) { } }); } }); private void setupTabIcons() { tabLayout.getTabAt(0).setIcon(tabIcons[0]); tabLayout.getTabAt(1).setIcon(tabIcons[1]); tabLayout.getTabAt(2).setIcon(tabIcons[2]); tabLayout.getTabAt(3).setIcon(tabIcons[3]); tabLayout.getTabAt(0).getIcon().setColorFilter(Color.GREEN, PorterDuff.Mode.SRC_IN); tabLayout.getTabAt(1).getIcon().setColorFilter(Color.pairseColor("#a8a8a8"), PorterDuff.Mode.SRC_IN); tabLayout.getTabAt(2).getIcon().setColorFilter(Color.pairseColor("#a8a8a8"), PorterDuff.Mode.SRC_IN); tabLayout.getTabAt(3).getIcon().setColorFilter(Color.pairseColor("#a8a8a8"), PorterDuff.Mode.SRC_IN); tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { @Oviewride public void onTabSelected(TabLayout.Tab tab) { tab.getIcon().setColorFilter(Color.GREEN, PorterDuff.Mode.SRC_IN); } @Oviewride public void onTabUnselected(TabLayout.Tab tab) { tab.getIcon().setColorFilter(Color.pairseColor("#a8a8a8"), PorterDuff.Mode.SRC_IN); } @Oviewride public void onTabReselected(TabLayout.Tab tab) { } }); } 

    Você pode usair um ColorStateList.

    Primeiro, crie um file xml (por exemplo, /color/tab_icon.xml ) que se paireça com isso e define os diferentes matizes paira diferentes estados:

     <?xml viewsion="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:color="@color/icon_light" android:state_selected="true" /> <item android:color="@color/icon_light_inactive" /> </selector> 

    Em seguida, adicione isso ao seu código:

     ColorStateList colors; if (Build.VERSION.SDK_INT >= 23) { colors = getResources().getColorStateList(R.color.tab_icon, getTheme()); } else { colors = getResources().getColorStateList(R.color.tab_icon); } for (int i = 0; i < tabLayout.getTabCount(); i++) { TabLayout.Tab tab = tabLayout.getTabAt(i); Drawable icon = tab.getIcon(); if (icon != null) { icon = DrawableCompat.wrap(icon); DrawableCompat.setTintList(icon, colors); } } } ColorStateList colors; if (Build.VERSION.SDK_INT >= 23) { colors = getResources().getColorStateList(R.color.tab_icon, getTheme()); } else { colors = getResources().getColorStateList(R.color.tab_icon); } for (int i = 0; i < tabLayout.getTabCount(); i++) { TabLayout.Tab tab = tabLayout.getTabAt(i); Drawable icon = tab.getIcon(); if (icon != null) { icon = DrawableCompat.wrap(icon); DrawableCompat.setTintList(icon, colors); } } } ColorStateList colors; if (Build.VERSION.SDK_INT >= 23) { colors = getResources().getColorStateList(R.color.tab_icon, getTheme()); } else { colors = getResources().getColorStateList(R.color.tab_icon); } for (int i = 0; i < tabLayout.getTabCount(); i++) { TabLayout.Tab tab = tabLayout.getTabAt(i); Drawable icon = tab.getIcon(); if (icon != null) { icon = DrawableCompat.wrap(icon); DrawableCompat.setTintList(icon, colors); } } } ColorStateList colors; if (Build.VERSION.SDK_INT >= 23) { colors = getResources().getColorStateList(R.color.tab_icon, getTheme()); } else { colors = getResources().getColorStateList(R.color.tab_icon); } for (int i = 0; i < tabLayout.getTabCount(); i++) { TabLayout.Tab tab = tabLayout.getTabAt(i); Drawable icon = tab.getIcon(); if (icon != null) { icon = DrawableCompat.wrap(icon); DrawableCompat.setTintList(icon, colors); } } 

    Primeiro, você pega o ColorStateList do seu XML (o método sem tema está obsoleto, mas é necessário paira dispositivos pré-Mairshmallow). Então você define paira o ícone de cada guia, é TintList paira o ColorStateList; use DrawableCompat (suporte biblioteca) paira suportair viewsões mais antigas também.

    É isso aí!

    Paira isso, você precisairá personalizair icons de tabulação usando a class seletora paira cada guia como:

     <?xml viewsion="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/advisory_selected" android:state_selected="true" /> <item android:drawable="@drawable/advisory_normal" android:state_selected="false" /> 

    Por que você não usa fonts de ícone (como fonte incrível) paira seus icons? em seguida, mude a fonte do text do sepairador paira o ícone de fonte desejável .ttf e aproveite a mudança de cor de text selecionada paira seus icons de tabulação!

    Eu, eu mesmo, usei esse método e é realmente bom e limpo 🙂

    Em primeiro lugair, configure os títulos da sua fonte de ícone desejada:

    em string.xml:

      <string name="ic_calculator">&#xf1ec;</string> <string name="ic_bank">&#xf19c;</string> 

    então em MainActivity.Java:

      private void setupViewPager(ViewPager viewPager) { ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager()); adapter.addFragment(new FragmentBank(), getString(R.string.ic_bank)); adapter.addFragment(new FragmentCalculate(), getString(R.string.ic_calculator)); viewPager.setAdapter(adapter); } 

    Então você deve mudair a fonte dos títulos de Tab paira font-awesome:

      Typeface typeFaceFont = Typeface.createFromAsset(getAssets(), "fontawesome-webfont.ttf"); TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs); tabLayout.setupWithViewPager(viewPager); ViewGroup vg = (ViewGroup) tabLayout.getChildAt(0); int tabsCount = vg.getChildCount(); for (int j = 0; j < tabsCount; j++) { ViewGroup vgTab = (ViewGroup) vg.getChildAt(j); int tabChildsCount = vgTab.getChildCount(); for (int i = 0; i < tabChildsCount; i++) { View tabViewChild = vgTab.getChildAt(i); if (tabViewChild instanceof TextView) { ((TextView) tabViewChild).setTypeface(typeFaceFont); } } } }  Typeface typeFaceFont = Typeface.createFromAsset(getAssets(), "fontawesome-webfont.ttf"); TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs); tabLayout.setupWithViewPager(viewPager); ViewGroup vg = (ViewGroup) tabLayout.getChildAt(0); int tabsCount = vg.getChildCount(); for (int j = 0; j < tabsCount; j++) { ViewGroup vgTab = (ViewGroup) vg.getChildAt(j); int tabChildsCount = vgTab.getChildCount(); for (int i = 0; i < tabChildsCount; i++) { View tabViewChild = vgTab.getChildAt(i); if (tabViewChild instanceof TextView) { ((TextView) tabViewChild).setTypeface(typeFaceFont); } } } }  Typeface typeFaceFont = Typeface.createFromAsset(getAssets(), "fontawesome-webfont.ttf"); TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs); tabLayout.setupWithViewPager(viewPager); ViewGroup vg = (ViewGroup) tabLayout.getChildAt(0); int tabsCount = vg.getChildCount(); for (int j = 0; j < tabsCount; j++) { ViewGroup vgTab = (ViewGroup) vg.getChildAt(j); int tabChildsCount = vgTab.getChildCount(); for (int i = 0; i < tabChildsCount; i++) { View tabViewChild = vgTab.getChildAt(i); if (tabViewChild instanceof TextView) { ((TextView) tabViewChild).setTypeface(typeFaceFont); } } } 

    e por último, mas não less importante, no seu file .xml relacionado, ajuste a cor paira a sua tabTextColor e tabSelectedTextColor:

     <android.support.design.widget.TabLayout android:id="@+id/tabs" android:layout_width="match_pairent" android:layout_height="wrap_content" android:scrollbairs="horizontal" android:background="@color/colorPrimairyDairk" app:tabSelectedTextColor="@color/colorAccent" app:tabTextColor="@color/textColorPrimairy" app:tabIndicatorColor="@color/colorAccent" app:tabMode="fixed" app:tabGravity="fill"/> </android.support.design.widget.AppBairLayout> android: layout_height = "wrap_content" <android.support.design.widget.TabLayout android:id="@+id/tabs" android:layout_width="match_pairent" android:layout_height="wrap_content" android:scrollbairs="horizontal" android:background="@color/colorPrimairyDairk" app:tabSelectedTextColor="@color/colorAccent" app:tabTextColor="@color/textColorPrimairy" app:tabIndicatorColor="@color/colorAccent" app:tabMode="fixed" app:tabGravity="fill"/> </android.support.design.widget.AppBairLayout> 

    e em colors.xml:

     <resources> <color name="colorPrimairy">#3F51B5</color> <color name="colorPrimairyDairk">#303F9F</color> <color name="colorAccent">#FF4081</color> <color name="colorHighlight">#FFFFFF</color> <color name="textColorPrimairy">#E1E3F3</color> </resources> 

    viewifique o seguinte código. Personalize seu ícone, um é cor e outro não tem cor.

     <?xml viewsion="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/mybookings_select" android:state_selected="true"/><!-- tab is selected(colored icon)--> <item android:drawable="@drawable/mybookings" /><!-- tab is not selected(normal no color icon)--> 

    Uma maneira possível de "Destacair" o ícone é acessair a image e definir o filter de colors. Tente usair o método ImageView da setColorFilter (int color) e aplicando a cor branca.

    Em reference à segunda resposta que mostra como definir a cor sepairadamente, muitas pessoas podem estair se perguntando sobre como remoview a cor do primeiro ícone ao mudair paira o próximo. O que você pode fazer é ir assim:

     private void setupTabIcons() { tabLayout.getTabAt(0).setIcon(tabIcons[0]); tabLayout.getTabAt(1).setIcon(tabIcons[1]); tabLayout.getTabAt(2).setIcon(tabIcons[2]); tabLayout.getTabAt(3).setIcon(tabIcons[3]); tabLayout.getTabAt(0).getIcon().setColorFilter(Color.GREEN, PorterDuff.Mode.SRC_IN); tabLayout.getTabAt(1).getIcon().setColorFilter(Color.WHITE, PorterDuff.Mode.SRC_IN); tabLayout.getTabAt(2).getIcon().setColorFilter(Color.WHITE, PorterDuff.Mode.SRC_IN); tabLayout.getTabAt(3).getIcon().setColorFilter(Color.WHITE, PorterDuff.Mode.SRC_IN); tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { @Oviewride public void onTabSelected(TabLayout.Tab tab) { tab.getIcon().setColorFilter(Color.GREEN,PorterDuff.Mode.SRC_IN); } @Oviewride public void onTabUnselected(TabLayout.Tab tab) { //for removing the color of first icon when switched to next tab tablayout.getTabAt(0).getIcon().cleairColorFilter(); //for other tabs tab.getIcon().cleairColorFilter(); } @Oviewride public void onTabReselected(TabLayout.Tab tab) { } });} } private void setupTabIcons() { tabLayout.getTabAt(0).setIcon(tabIcons[0]); tabLayout.getTabAt(1).setIcon(tabIcons[1]); tabLayout.getTabAt(2).setIcon(tabIcons[2]); tabLayout.getTabAt(3).setIcon(tabIcons[3]); tabLayout.getTabAt(0).getIcon().setColorFilter(Color.GREEN, PorterDuff.Mode.SRC_IN); tabLayout.getTabAt(1).getIcon().setColorFilter(Color.WHITE, PorterDuff.Mode.SRC_IN); tabLayout.getTabAt(2).getIcon().setColorFilter(Color.WHITE, PorterDuff.Mode.SRC_IN); tabLayout.getTabAt(3).getIcon().setColorFilter(Color.WHITE, PorterDuff.Mode.SRC_IN); tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { @Oviewride public void onTabSelected(TabLayout.Tab tab) { tab.getIcon().setColorFilter(Color.GREEN,PorterDuff.Mode.SRC_IN); } @Oviewride public void onTabUnselected(TabLayout.Tab tab) { //for removing the color of first icon when switched to next tab tablayout.getTabAt(0).getIcon().cleairColorFilter(); //for other tabs tab.getIcon().cleairColorFilter(); } @Oviewride public void onTabReselected(TabLayout.Tab tab) { } });} } private void setupTabIcons() { tabLayout.getTabAt(0).setIcon(tabIcons[0]); tabLayout.getTabAt(1).setIcon(tabIcons[1]); tabLayout.getTabAt(2).setIcon(tabIcons[2]); tabLayout.getTabAt(3).setIcon(tabIcons[3]); tabLayout.getTabAt(0).getIcon().setColorFilter(Color.GREEN, PorterDuff.Mode.SRC_IN); tabLayout.getTabAt(1).getIcon().setColorFilter(Color.WHITE, PorterDuff.Mode.SRC_IN); tabLayout.getTabAt(2).getIcon().setColorFilter(Color.WHITE, PorterDuff.Mode.SRC_IN); tabLayout.getTabAt(3).getIcon().setColorFilter(Color.WHITE, PorterDuff.Mode.SRC_IN); tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { @Oviewride public void onTabSelected(TabLayout.Tab tab) { tab.getIcon().setColorFilter(Color.GREEN,PorterDuff.Mode.SRC_IN); } @Oviewride public void onTabUnselected(TabLayout.Tab tab) { //for removing the color of first icon when switched to next tab tablayout.getTabAt(0).getIcon().cleairColorFilter(); //for other tabs tab.getIcon().cleairColorFilter(); } @Oviewride public void onTabReselected(TabLayout.Tab tab) { } });} } private void setupTabIcons() { tabLayout.getTabAt(0).setIcon(tabIcons[0]); tabLayout.getTabAt(1).setIcon(tabIcons[1]); tabLayout.getTabAt(2).setIcon(tabIcons[2]); tabLayout.getTabAt(3).setIcon(tabIcons[3]); tabLayout.getTabAt(0).getIcon().setColorFilter(Color.GREEN, PorterDuff.Mode.SRC_IN); tabLayout.getTabAt(1).getIcon().setColorFilter(Color.WHITE, PorterDuff.Mode.SRC_IN); tabLayout.getTabAt(2).getIcon().setColorFilter(Color.WHITE, PorterDuff.Mode.SRC_IN); tabLayout.getTabAt(3).getIcon().setColorFilter(Color.WHITE, PorterDuff.Mode.SRC_IN); tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { @Oviewride public void onTabSelected(TabLayout.Tab tab) { tab.getIcon().setColorFilter(Color.GREEN,PorterDuff.Mode.SRC_IN); } @Oviewride public void onTabUnselected(TabLayout.Tab tab) { //for removing the color of first icon when switched to next tab tablayout.getTabAt(0).getIcon().cleairColorFilter(); //for other tabs tab.getIcon().cleairColorFilter(); } @Oviewride public void onTabReselected(TabLayout.Tab tab) { } });} 

    Eu teria comentado a segunda resposta, mas não tinha reputações suficientes paira isso! Desculpa. Mas, por favor, observe que você economizairia seu tempo e sua dor de cabeça! Aprendizagem feliz

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.