2017-10-05 114 views
0

我需要以编程方式更改TabLayout标题颜色。它看起来像这样: screenshot_1如何以编程方式更改TabLayout标题颜色?

而当我点击暂停它应该改变颜色为灰色。我不喜欢这样写道:

private void initUIComponents() { 
    final Toolbar toolbar = findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 

    mBtnPause = findViewById(R.id.btn_pause); 
    mBtnPause.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View view) { 
     Toast.makeText(MainActivity.this, "Pause is clicked", Toast.LENGTH_SHORT).show(); 
     toolbar.setBackgroundColor(getResources().getColor(R.color.darkGrey)); 
     toolbar.setTitle("Your Wi-Fi is paused"); 
     } 
    }); 

    mViewPager = findViewById(R.id.viewpager); 
    mTabLayout = findViewById(R.id.tabs); 
    mTabLayout.setTabGravity(TabLayout.GRAVITY_FILL); 

    mViewPager.setAdapter(new MenuCategoryAdapter(this, getSupportFragmentManager())); 
    mTabLayout.setupWithViewPager(mViewPager); 

    for (int i = 0; i < mTabLayout.getTabCount(); i++) { 
     mTabLayout.getTabAt(i).setIcon(R.mipmap.ic_launcher); 
    } 
    } 

但问题是,我只能改变Toolbar颜色并不能找到改变TabLayout头的方法。 方法mTabLayout.setBackgroud不适用于我。

This throws NullPointerException:mTabLayout.getTabAt(i).getCustomView()。setBackgroundColor(getResources()。getColor(R.color.darkGrey));

对不起,可能重复,original - 在这里你可以找到答案。

+2

[改变TabLayout一个标签(Android设计支持库)的背景颜色不占据整个标签空间的可能的复制](https://stackoverflow.com/questions/32611885/changing-the-background-color-of-a-tab-in-tablayout-android-design-support-libr) – akhilesh0707

+0

'TabLayout' header xml code –

回答

相关问题