如何将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属性。 我可以如何将风格设置为大胆?

  • 片段重新显示时,片段内的ViewPager将丢失它的内容
  • 动态高度viewpager
  • 将寻呼机视为列表视图行项目
  • 将子视图对齐ViewPager android的中心
  • AdMob AdView和ViewPager?
  • TabLayout与viewpager不平滑滚动
  • Android:我应该添加一个空的构造函数到ViewPager中使用的片段
  • 位于ViewPager中的Fragment中的Android RecyclerView在到达setOffscreenPageLimit时不会重新加载/刷新视图
  • 你需要做的是为文本创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 。