我正在使用带有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所选选项卡图标的颜色?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)