IT하는 참새
Tablayout의 탭 변경 본문
보통 Tablayout을 사용한다면 ViewPager와 같이 사용한다
그리고 탭에 들어갈 내용을 ViewPager를 만들때 사용한 어댑터 클래스에서
getPageTitle메소드를 오버라이딩해서 박아넣을 것이다
하지만!!! 하다보면 이런문제가 발생할 확률 90%이상
- 탭레이아웃의 각 탭의 글씨 크기를 키우고 싶다
- 탭레이아웃의 각 탭의 들어가는 것을 이미지로 바꾸고 싶다
- 탭레이아웃의 각 탭에 들어가는 이미지크기를 좀 늘리고 싶다..
- 어쨌든 기본적으로 밋밋한 글씨 들어가는거보다 내가 커스텀해서 넣고싶다!!
이러고싶다면 getPageTitle메소드 오버라이딩을 하지말고
탭 하나하나 참조해서 적용하면된다
예를들어 탭레이아웃의 현재탭이 3개라면
탭레이아웃객체.getTabAt(0).setCustomView(view);
탭레이아웃객체.getTabAt(1).setCustomView(view);
탭레이아웃객체.getTabAt(2).setCustomView(view);
이렇게 적용하면 된다!! (이때 매개변수 view는 내가 새로만든 커스텀 뷰)
예를들어 글씨크기30으로 늘리고싶다?
1. 뷰를 하나 생성함
2. 뷰의 속성을 설정함
3. setCustomView의 매개변수로 넘겨줌
예시)
(Activity에서설명임. Fragment라면 context를 넣기. this대신)
TextView tv1 = new TextView(this);
tv1.setText("탭1");
tv1.setGravity(Gravity.CENTER);
tv1.setTextSize(30);
탭레이아웃객체.getTabAt(0).setCustomView(tv1);
PS. 만약 터치나 클릭됐을경우 바꾸는 이벤트를 주고싶다면
콜백메소드로 넘어온 Tab매개변수를 이용하여 바꾼다
예시)
TextView tv1 = tab.getCustomView();
tv1.setTextSize(50);
이렇게!
(이미지도 똑같음)
'프로그래밍 > Android Tip' 카테고리의 다른 글
ListView 중첩출력 현상 (0) | 2018.08.29 |
---|---|
이미지 슬라이드 (쉽게구현) (0) | 2018.08.28 |