2017-10-05 1 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가 작동하지 않습니다.

이렇게하면 NullPointerException이 throw됩니다. mTabLayout.getTabAt (i) .getCustomView(). setBackgroundColor (getResources(). getColor (R.color.darkGrey));

복제본은 original입니다. 여기에서 답을 찾을 수 있습니다.

+2

[전체 탭 공간을 차지하지 않는 TabLayout의 탭 (안드로이드 디자인 지원 라이브러리)의 배경색을 변경의 가능한 중복 ] (https://stackoverflow.com/questions/32611885/changing-the-background-color-of-a-tab-in-tablayout-android-design-support-libr) – akhilesh0707

+0

'TabLayout' 헤더 xml 코드 –

답변

관련 문제