相关疑难解决方法(0)

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

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

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

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

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

编辑

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

java mobile android material-design android-tablayout

66
推荐指数
9
解决办法
6万
查看次数

在TabLayout(Android设计支持库)中更改选项卡的背景颜色不会占用整个选项卡空间

我有一个TabLayout(设计支持库),它与包含三个选项卡的ViewPager绑定在一起.我设计了一个自定义布局,并将其设置为TabLayout中的每个选项卡.我一直在尝试更改当前所选选项卡的背景颜色.颜色仅包含在选项卡中的文本周围,但不占用整个选项卡空间.

以下是我的活动和自定义布局文件的代码段.

活动代码

public class CustomTabLayoutActivity extends AppCompatActivity {

private TabLayout tabLayout;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_custom_tab_layout);
    tabLayout = (TabLayout) findViewById(R.id.tabLayout);
    ViewPager viewPager = (ViewPager) findViewById(R.id.viewPager);
    setupViewPager(viewPager);
    tabLayout.setupWithViewPager(viewPager);
    tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE);
    setupTabLayout();
    viewPager.setCurrentItem(0);
    viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

        }

        @Override
        public void onPageSelected(int position) {
            for (int i = 0; i < tabLayout.getTabCount(); i++) {
                if (i == position) {
                    tabLayout.getTabAt(i).getCustomView().setBackgroundColor(Color.parseColor("#198C19"));
                } else {
                    tabLayout.getTabAt(i).getCustomView().setBackgroundColor(Color.parseColor("#f4f4f4"));
                }
            }
        }

        @Override
        public void …
Run Code Online (Sandbox Code Playgroud)

android android-design-library android-tablayout

28
推荐指数
2
解决办法
4万
查看次数