如何以编程方式更改TabLayout标题颜色?
问题描述:
我需要以编程方式更改TabLayout
标题颜色。它看起来像这样: 如何以编程方式更改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 - 在这里你可以找到答案。
答
试试这个:
TabLayout tabLayout = (TabLayout) findViewById(R.id.tab_layout);
tabLayout.setBackgroundColor(Color.parseColor("#8A4117"));
也检查: http://www.technotalkative.com/android-change-tab-bar-background-color/
[改变TabLayout一个标签(Android设计支持库)的背景颜色不占据整个标签空间的可能的复制](https://stackoverflow.com/questions/32611885/changing-the-background-color-of-a-tab-in-tablayout-android-design-support-libr) – akhilesh0707
'TabLayout' header xml code –