java– 如何更改TabLayout所选选项卡图标的颜色?

java– 如何更改TabLayout所选选项卡图标的颜色?,第1张

概述我正在使用带有ViewPager的TabLayout,我想知道如何最有效地更改TabLayout中所选标签图标颜色.谷歌的Youtube应用程序是如何实现这一功能的完美参考.在主页面上,有四个图标为深灰色.选择特定选项卡后,选项卡的图标将变为白色.没有任何第三方库,我怎样才能达到同样的效果?一种可

我正在使用带有VIEwPager的TabLayout,我想知道如何最有效地更改TabLayout中所选标签图标的颜色.

谷歌的Youtube应用程序是如何实现这一功能的完美参考.在主页面上,有四个图标为深灰色.选择特定选项卡后,选项卡的图标将变为白色.

没有任何第三方库,我怎样才能达到同样的效果?

一种可能的解决方案显然是选择器.但在这种情况下,我必须找到图标的白色和灰色版本,然后在选中或取消选择选项卡时切换图标.我想知道是否有更有效的方法我可以突出显示图标颜色或其他东西.我在任何教程中都找不到这个.

编辑

我上面直接提到的解决方案需要为每个标签的图标使用两个drawable.我想知道是否有一种方法可以通过一个drawable为每个标签的图标以编程方式进行.

解决方法:

我找到了一种方便的方法.

    vIEwPager = (VIEwPager) findVIEwByID(R.ID.vIEwpager);    setupVIEwPager(vIEwPager);    tabLayout = (TabLayout) findVIEwByID(R.ID.tabs);    tabLayout.setupWithVIEwPager(vIEwPager);    tabLayout.setonTabSelectedListener(            new TabLayout.VIEwPagerOnTabSelectedListener(vIEwPager) {                @OverrIDe                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);                }                @OverrIDe                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);                }                @OverrIDe                public voID onTabReselected(TabLayout.Tab tab) {                    super.onTabReselected(tab);                }            }    );
总结

以上是内存溢出为你收集整理的java – 如何更改TabLayout所选选项卡图标的颜色?全部内容,希望文章能够帮你解决java – 如何更改TabLayout所选选项卡图标的颜色?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1100694.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存