탭을위한 레이아웃 리소스를 만드십시오. 여기에는 "배지"를 나타내는 무언가가 포함되어야합니다 (숫자 만 표시하려는 경우 간단하게 TextView
이 작동합니다). 탭을 만들 때이 사용자 지정 레이아웃을 지정하십시오. setText()
제대로 작동하는 것을
private TabLayout tabLayout;
// in onCreate()
tabLayout = (TabLayout) findViewById(R.id.tabs);
for (int i = 0; i < NUM_TABS; i++) {
TabLayout.Tab tab = tabLayout.newTab()
.setText("tab name")
.setCustomView(R.layout.custom_tab);
tabLayout.addTab(tab);
}
참고 레이아웃은 android:id="@android:id/text1"
와 TextView
(이것은,이 탭 이름 배지 텍스트입니다되지 않음)이 필요합니다.
탭의 배지를 업데이트하려면 Tab
을 가져 와서 해당보기를 요청하고 배지를 찾고 텍스트를 설정하십시오.
TabLayout.Tab tab = tabLayout.getTabAt(3); // fourth tab
View tabView = tab.getCustomView();
TextView badgeText = (TextView) tabView.findViewById(R.id.badge_text);
badgeText.setText(...);
게시물의 대답은 기본 레이아웃을 사용하는 대신 탭의 맞춤 레이아웃을 설정하는 것이 좋습니다. 정확히 무엇을 요구하고 있습니까? – Karakuri
내 앱은 5 개의 탭으로 구성되어 있습니다. 네 번째 탭은 알림을 표시하는 목록보기가 포함 된 조각입니다. 사용자가 앱을 열면 탭 아이콘으로 빨간색 카운터를 표시하여 읽지 않은 알림 수가 표시되지만이를 수행하는 방법은 확실하지 않습니다. @ Karakuri – grant
자신 만의 레이아웃을 만들어 탭의보기로 설정할 수 있으므로 일반 텍스트 대신 레이아웃이 표시됩니다. 또한 [getTabAt()'] (https://developer.android.com/reference/android/support/design/widget/TabLayout.html#getTabAt (int)) 및 ['getCustomView()'] (https://developer.android.com/reference/android/support/design/widget/TabLayout.Tab.html#getCustomView())을 클릭하여 해당 탭에 대한보기를 가져 와서 수정하십시오. – Karakuri