当前页面上ViewPager中的不同PagerTitleStrip

时间:2014-03-17 10:26:37

标签: android android-layout android-viewpager

我在我的应用程序中使用ViewPager滑动选项卡。 viewpager显示3个选项卡,当前,上一个和下一个。现在,我想让当前标签比上一个和下一个标签更大。

这可能吗?设置PagerTitleStrip textSize为所有3个选项卡设置textSize。

我想我需要一个自定义的viewpager布局,但我不知道该怎么做。

我想让'ROOM 5'更大,另外2小 I want to make 'ROOM 5' bigger and the other 2 small

现在使用的代码:

<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"  
    xmlns:tools="http://schemas.android.com/tools"  
    android:id="@+id/pager"  
    android:layout_width="match_parent"  
    android:layout_height="match_parent"  
    tools:context=".RoomViewActivity" 
    >  


    <android.support.v4.view.PagerTitleStrip  
        android:id="@+id/pager_title_strip"  
        android:layout_width="match_parent"  
        android:layout_height="wrap_content"  
        android:layout_gravity="top"  
        android:paddingBottom="20dp"  
        android:paddingTop="20dp"  
        android:textColor="#fff" 

        />  


</android.support.v4.view.ViewPager> 

1 个答案:

答案 0 :(得分:4)

您无法在不调整其余内容的情况下单独调整TextView中特定PagerTitleStrip的尺寸。因此,如果您想使用PagerTitleStrip指标,调整该文字大小的最佳方法是使用RelativeSizeSpan。以下是这样做的一个简单示例:

private CharSequence relativeSizeSpan(CharSequence source, int pos) {
    if (mViewPager.getCurrentItem() != pos) {
        return source;
    }
    final SpannableString ss = new SpannableString(source);
    ss.setSpan(new RelativeSizeSpan(2f), 0, source.length(), 0);
    return ss;
}

    // //////////////////////////////////////////////////////////////////////////
    // In your PagerAdapter
    // //////////////////////////////////////////////////////////////////////////

@Override
public CharSequence getPageTitle(int pos) {
    switch (pos) {
        case 0:
            return relativeSizeSpan(zero, pos);
        case 1:
            return relativeSizeSpan(one, pos);
        case 2:
            return relativeSizeSpan(two, pos);
        default:
            break;
    }
    return null;
}

否则,您可能会考虑复制PagerTitleStrip的来源,根据您的需要进行编辑或使用其他第三方指标,例如viewpagerindicator

以上是使用RelativeSizeSpan的上述示例的屏幕截图。

Example