如何在pagerslidingtabstrip中设置不同的标签宽度

时间:2015-02-03 23:45:27

标签: android android-viewpager fragmentpageradapter

Hii当前正在使用pagerslidingtabstrip和viewpager来托管3个滑动片段。现在一切都很好,但其中一个标题比其他标题长一点!所以它不适合分配的地方。所以我得到一些标题和3点的字母。所以我想问一下是否有一种很好的方法可以解决这个问题,使每个标签的宽度与其长度相对应。

请注意,如果我使用布局实现pagerAdapter(此处记录的Viewpager和PagerTitleStrip:http://developer.android.com/training/implementing-navigation/lateral.html

,则可以使用此功能。

2 个答案:

答案 0 :(得分:2)

尝试在已定义PagerSlidingTabStrip的xml中添加此app1:pstsShouldExpand="false"属性

例如

<com.astuetz.PagerSlidingTabStrip
        android:id="@+id/tabs"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:background="@color/tab_bg"
        app1:pstsTextAllCaps="false"
        app1:pstsShouldExpand="false"
         />

答案 1 :(得分:0)

I'm try this and it's work for me

 1. Create new pagerTitleStrip layout, "my_tabs.xml"

   <code>< com.astuetz.PagerSlidingTabStrip
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@id/materialviewpager_pagerTitleStrip"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:pstsPaddingMiddle="true"
    app:pstsDividerPadding="20dp"
    app:pstsIndicatorColor="#FFF"
    app:pstsIndicatorHeight="2dp"
    app:pstsShouldExpand="false"
    app:pstsTabPaddingLeftRight="10dp"
    app:pstsTabTextAllCaps="true"
    tools:background="#A333"
    /> </code>

 2. On layout xml contain < com.github.florent37.materialviewpager.MaterialViewPager > set that new tab layout to your viewPager layout with : 
<code>app:viewpager_pagerTitleStrip="@layout/my_tabs"</code>

3. If still no working, add <code>.setShouldExpand(true);</code> on pagerActivity.java before setViewPager. 

<code>MaterialViewPager mViewPager;
    ....
mViewPager.getViewPager().setOffscreenPageLimit(mViewPager.getViewPager().getAdapter().getCount());
mViewPager.getPagerTitleStrip().setShouldExpand(true); //Works
mViewPager.getPagerTitleStrip().setViewPager(mViewPager.getViewPager()); 
.... </code>