Je dois modifier la couleur de l'en-tête TabLayout
par programme. Il ressemble à ceci: Comment modifier la couleur de l'en-tête TabLayout par programmation?
Et quand je clique sur Pause, il devrait changer de couleur en gris. Je le fais comme ceci:
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);
}
}
Mais le problème est que je ne peux changer Toolbar
couleur et ne peut pas trouver une méthode pour changer TabLayout
tête. La méthode mTabLayout.setBackgroud ne fonctionne pas pour moi.
Ceci lève NullPointerException: mTabLayout.getTabAt (i) .getCustomView(). SetBackgroundColor (getResources(). GetColor (R.color.darkGrey));
Désolé pour la duplication possible, original - ici vous pouvez trouver la réponse.
double possible de [Changer la couleur d'arrière-plan d'un onglet dans TabLayout (Android bibliothèque de support de conception) ne pas occuper tout l'espace de l'onglet ] (https://stackoverflow.com/questions/32611885/changing-the-background-color-of-a-tab-in-tablayout-android-design-support-libr) – akhilesh0707
'tabLayout' en-tête xml code –