2017-01-08 3 views
0

나는 this stack overflow post을 보았지만 내가해야 할 일을 이해하는 데 도움이되지 못했습니다. 내 쿼리에서 카운터의 값을 어떻게 늘릴 것인지 개념을 이해합니다.Tablayout에 알림 카운터를 표시하는 방법?

하지만 내가 사용해야하는 것을 이해하지 못합니다. Notification notification; 또는 BadgeViewer badgeViewer;을 사용해야합니까? 라이브러리를 가져올 필요가없는 방법을 선호합니다.

+0

게시물의 대답은 기본 레이아웃을 사용하는 대신 탭의 맞춤 레이아웃을 설정하는 것이 좋습니다. 정확히 무엇을 요구하고 있습니까? – Karakuri

+0

내 앱은 5 개의 탭으로 구성되어 있습니다. 네 번째 탭은 알림을 표시하는 목록보기가 포함 된 조각입니다. 사용자가 앱을 열면 탭 아이콘으로 빨간색 카운터를 표시하여 읽지 않은 알림 수가 표시되지만이를 수행하는 방법은 확실하지 않습니다. @ Karakuri – grant

+0

자신 만의 레이아웃을 만들어 탭의보기로 설정할 수 있으므로 일반 텍스트 대신 레이아웃이 표시됩니다. 또한 [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

답변

2

탭을위한 레이아웃 리소스를 만드십시오. 여기에는 "배지"를 나타내는 무언가가 포함되어야합니다 (숫자 만 표시하려는 경우 간단하게 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(...); 
+0

나는 이것을 곧 시험해보고 그것이 어떻게 진행되는지 알려 줄 것이다. – grant

관련 문제