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가 작동하지 않습니다.
이렇게하면 NullPointerException이 throw됩니다. mTabLayout.getTabAt (i) .getCustomView(). setBackgroundColor (getResources(). getColor (R.color.darkGrey));
복제본은 original입니다. 여기에서 답을 찾을 수 있습니다.
[전체 탭 공간을 차지하지 않는 TabLayout의 탭 (안드로이드 디자인 지원 라이브러리)의 배경색을 변경의 가능한 중복 ] (https://stackoverflow.com/questions/32611885/changing-the-background-color-of-a-tab-in-tablayout-android-design-support-libr) – akhilesh0707
'TabLayout' 헤더 xml 코드 –