我使用刷卡标签一个ViewPager在我的应用程序。该viewpager显示3个标签,目前,前一个和下一个。现在,我想使当前选项卡比前和下一个标签更大。
这可能吗?设置PagerTitleStrip文本大小设置所有3个标签的文字大小。
我想我会需要一个定制viewpager布局,但我不知道如何做到这一点。
我想要的房间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>
不调整休息的大小不能单独调节的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
从上面的例子的屏幕截图。