2016-02-18 2 views
-1

Я реализовал tabLayout с viewPager. Мое требование состоит в том, чтобы исправить только 5 вкладок на ширине устройства, а если больше 5, то вкладки с 6-го должны прокручиваться.Вкладка Layout исправить только 5 вкладок и другие сделать прокрутки?

Я пробовал использовать tabModes как fixed и tabMode как прокручиваемый, я также пытался манипулировать шириной, но не повезло.

Ширину PagerTabStrip следует модифицировать вместе с ней.

Любая помощь или предложение будут оценены.

+0

Как насчет 'PagerTabStrip' –

+1

Да, pagerTabStrip width также должен быть изменен, спасибо за замечание. – Ritesh

+0

Вместо этого вы должны использовать TabLayout. Это родной и лучший подход. – Nepster

ответ

-1

Скачать оба файла скопируйте его в свой проект

https://github.com/google/iosched/blob/master/android/src/main/java/com/google/samples/apps/iosched/ui/widget/SlidingTabLayout.java

https://github.com/google/iosched/blob/master/android/src/main/java/com/google/samples/apps/iosched/ui/widget/SlidingTabStrip.java

, а затем попробовать некоторые вещи, как этот

ViewPager pager= (ViewPager) findViewById(R.id.pager);//your pager id 
    SlidingTabLayout slidingTabLayout= (SlidingTabLayout) findViewById(R.id.sliding_tab); 
     TabsPagerAdapter tabsPagerAdapter=new TabsPagerAdapter(getSupportFragmentManager()); 

     pager.setAdapter(tabsPagerAdapter); 
     slidingTabLayout.setDistributeEvenly(true); 
     slidingTabLayout.setViewPager(pager); 

и файл XML будет что-то вроде этого

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

    <android.support.v7.widget.Toolbar 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/toolbar" 
     android:background="@color/primary" 
     android:minHeight="?attr/actionBarSize"> 
    </android.support.v7.widget.Toolbar> 


    <com.example.SlidingTabLayout 
     android:layout_below="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/sliding_tab"> 



    </com.example.SlidingTabLayout> 


    <android.support.v4.view.ViewPager 
     android:id="@+id/pager" 
     android:layout_below="@+id/sliding_tab" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 

    </android.support.v4.view.ViewPager> 
</RelativeLayout> 
+0

Здесь вы используете layoutTab, который равномерно распределяет элемент. Я использую TabLayout, и мое требование отличается, пожалуйста, снова прочитайте мой вопрос, не отвечайте на него, просто потому, что вы этого хотите. – Ritesh

0

Вы можете использовать PagerTabStrip

PagerTabStrip представляет собой интерактивный индикатор тока, затем, и предыдущие страницы в ViewPager. Он предназначен для использования в качестве вида вид виджета ViewPager в вашем XML-макете.

Пожалуйста, проверьте демо PagerSlidingTabStrip.

+1

хорошо, но я не уверен, удовлетворит ли оно мое требование, у меня есть в общей сложности 20 предметов, когда пользователь приземляется на экране, я хочу показать только 5 предметов, после 5 пунктов остальные элементы должны прокручиваться. Ибо теперь, если он задает значение tabMode как прокручиваемое, устанавливается 4 элемента в соответствии с шириной устройства. и после 4 он прокручивается, и если я устанавливаю tabMode для исправления, он вмещает все данные без прокрутки. – Ritesh

+1

Возможно ли сделать только 5 или 6 вкладок в каждом устройстве, для компоновки вкладок для scrollView. По умолчанию он вычисляет ширину каждой вкладки динамически для scrollView. – Ritesh

+0

Вы можете попробовать с помощью 'Display Metric' Rule. Но не знаю, полезно ли это или нет. –

Смежные вопросы