如何将PagerTabStrip的TextStyle设置为粗体?

我在PagerTabStrip中使用PagerTabStrip来显示每个页面的标题。 这是我的XML代码:

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/bg"> <android.support.v4.view.ViewPager android:id="@+id/pager" android:layout_width="fill_parent" android:layout_height="fill_parent" > <android.support.v4.view.PagerTabStrip android:id="@+id/pager_title_strip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="top" android:background="#33b5e5" android:textColor="#a4c639" android:paddingTop="4dp" android:paddingBottom="4dp" /> </android.support.v4.view.ViewPager> </RelativeLayout> 

我想在这样的PagerTabStrip中将textStyle设置为粗体: android:textStyle="bold" 。 但是这在PagerTabStrip是不可能的。 似乎它只有文本的textcolor属性。 我可以如何将风格设置为大胆?

Solutions Collecting From Web of "如何将PagerTabStrip的TextStyle设置为粗体?"

你需要做的是为文本创build一个样式,然后使用android:textAppearance属性…

也许是这样的:

  <style name="PagerTabStripText"> <item name="android:textSize">14sp</item> <item name="android:textStyle">bold</item> <item name="android:textColor">#a4c639</item> </style> 

然后在你的PagerTabStrip XML中做这个:

  <android.support.v4.view.PagerTabStrip android:id="@+id/pager_title_strip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="top" android:background="#33b5e5" android:paddingTop="4dp" android:paddingBottom="4dp" android:textAppearance="@style/PagerTabStripText"/> 

PagerTabStrip不会提供文本的外观。

像@Justin上面说的,但在xml上放:

style="@style/PagerTabStripText"

不:

android:textAppearance="@style/PagerTabStripText"

如果您想将中心标签的标题与其他标题的样式不同,则需要使用reflection:

 try { final Class pagerTitleStripClass = PagerTitleStrip.class; final Field mCurrTextField = pagerTitleStripClass.getDeclaredField("mCurrText"); mCurrTextField.setAccessible(true); // mTitle is my class's PagerTabStrip member variable final TextView mCurrText = (TextView) mCurrTextField.get(mTitle); mCurrText.setTypeface(Typeface.DEFAULT_BOLD); } catch (final Exception e) { Log.w(TAG, "Exception when styling currently selected title!", e); } 

不幸的是,当Android支持库的更新发布时(这是PagerTitleStrip类的来源),此解决scheme可能不再适用。 特别是,这个代码示例正在使用修订版本20 。