Recent Posts
밍쯔와 안작고 안귀여운 에러들🖤
[Android] material TabLayout - tabBackground를 동적으로(programmatically) 변경하기 본문
Develop/Android | iOS
[Android] material TabLayout - tabBackground를 동적으로(programmatically) 변경하기
밍쯔 2024. 1. 4. 10:51
이전 포스팅(아래 참고)을 보면 토글의 selected 된 영역을 둥글게 표현하는 것까지는 완성 시킬 수 있다!
근데 만약 A 탭과 B 탭 각각이 선택 됐을때, 색상을 달리 하고 싶다면?
이걸 설정하는데 꽤나 답답했던 것이,,,
app:tabBackground="@drawable/selector_btn_toggle_gray"
위의 방식으로 설정하던 방식으로 동적으로 변경하고 싶다,,! 에서 방법을 찾는데 문제를 겪었다.
binding.tabLayout.setBackground(...selector..) 로 변경이 안됐다는 것,,,,!
binding.tabLayout.setBackground(getResources().getDrawable(R.drawable.tab_color_selector));
binding.tabLayout.setBackgroundResource((R.drawable.tab_color_selector));
binding.tabLayout.setBackgroundDrawable(getResources().getDrawable(R.drawable.tab_color_selector));
binding.tabLayout.setBackground(ContextCompat.getDrawable(this, R.drawable.tab_color_selector));
이건 시도를 해봤으나 도무지 먹히지 않았고,,, metarial 문서를 봐도 없었기에,,,,((내가 못찾은건가,,, 없었음,,ㅠ))
아무튼 해결 방법을 찾았습니다.
아래처럼 tab.view.setBackground를 쓰면 깔끼하게 해결됩니다.
binding.tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
if(tab.getPosition() == 0) {
...
// 색상 변경 (Change Color of TabBackground)
binding.tabCardView.setStrokeColor(getColor(R.color.stroke_gray));
binding.tabLayout.setTabTextColors(getColor(R.color.stroke_gray), getColor(R.color.white));
tab.view.setBackground(getDrawable(R.drawable.selector_btn_toggle_gray));
} else if (tab.getPosition() == 1){
...
// 색상 변경 (Change Color of TabBackground)
binding.tabCardView.setStrokeColor(getColor(R.color.theme_pink));
binding.tabLayout.setTabTextColors(getColor(R.color.theme_pink), getColor(R.color.white));
tab.view.setBackground(getDrawable(R.drawable.selector_btn_toggle_pink));
}
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
ui 설정 파일이나 selector 등 상세한 코드는 이전 포스팅을 참고해주세요!
[ First Posting ]
'Develop > Android | iOS' 카테고리의 다른 글
[Android/Kotlin] Custom BottomSheetDialogFragment : 상단 라운드 뷰, interface를 이용한 동적 이벤트 처리, navigation bar color 문제 (0) | 2024.01.19 |
---|---|
[Android] com.google.android.gms.common.api.ApiException: 10 (0) | 2024.01.12 |
[Android/Java] object 리스트 특정 값으로 중복제거 (2) | 2024.01.03 |
[Android] Custom RatingBar - star : png to svg (0) | 2023.11.02 |
[Android] APK33(android 13) 수정 시 Permission 권한 요청 수정 (0) | 2023.09.08 |