2

Приложение twitter для Android имеет настраиваемые вкладки viewpager, как это делается? Текст находится над маленькой центральной точкой, которая появляется, когда на каждой соответствующей вкладке есть что-то новое.android twitter app, пользовательские вкладки viewpager как

Я знаю, как это можно сделать с вкладками ACTION BAR, но проблема с вкладками панели действий заключается в том, что в ландшафтном режиме они перемещаются в фактическую панель действий. Вкладки Viewpager этого не делают.

Я имел дело с некоторыми библиотеками титровальных ViewPager, но я не ясно, как это будет сделано

ответ

3

Один ответ заключается в использовании сторонней библиотеки как PagerSlidingTabStrip, или вилку той, которая позволяет поставить любую вытяжку на вкладке

+0

Взгляните на мой родной ответ :-) – Zinc

1

вы можете задать свои собственные взгляды на каждую вкладку, вы должны создать макет XML (custom_tab_icon.xml) с TextView и синей точкой ниже TextView

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" android:layout_width="match_parent" 
android:layout_height="match_parent"> 

<TextView 
    android:id="@+id/tab_name" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="TITLE"/> 
<ImageView 
    android:id="@+id/dot" 
    android:layout_width="5dp" 
    android:layout_height="5dp" 
    android:layout_below="@id/tab_name" 
    android:layout_centerHorizontal="true" 
    android:background="@drawable/notifiercircle" 
    android:visibility="visible"/> 

И потом, каждый раз, когда вы измените вкладку, вызовите этот метод refreshTabIcon:

private void refreshTabIcons() { 
    for (int i = 0; i < tabLayout.getTabCount(); i++) { 
     TabLayout.Tab tab = tabLayout.getTabAt(i); 
     tab.setCustomView(null); //if view is not first nullyfied, it's added to the previous one, not replaced 
     tab.setCustomView(R.layout.custom_tab_icon); 
     ImageView dot = ((ImageView) tab.getCustomView().findViewById(R.id.dot)); 
     if (viewPagerAdapter.getItem(viewPager.getCurrentItem()) == viewPagerAdapter.getItem(i)) {//This if determines if this is the selected tab 
      dot.setVisibility(View.VISIBLE); 
     } else { 
      dot.setVisibility(View.INVISIBLE); 
     } 
     ((TextView) tab.getCustomView().findViewById(R.id.tab_name)).setText("tab title"); 
    } 
} 
Смежные вопросы