我在我的应用程序中使用ViewPager滑动选项卡。 viewpager显示3个选项卡,当前,上一个和下一个。现在,我想让当前标签比上一个和下一个标签更大。
这可能吗?设置PagerTitleStrip textSize为所有3个选项卡设置textSize。
我想我需要一个自定义的viewpager布局,但我不知道该怎么做。
我想让'ROOM 5'更大,另外2小
现在使用的代码:
<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>
答案 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
的上述示例的屏幕截图。