PagerTitleStrip不会在第一个显示页面上显示标题,只有在刷到另一个页面后才能绘制标题

时间:2015-09-03 12:51:31

标签: android android-viewpager pagertabstrip pagertitlestrip

问题:更新到appcompat-v7:23.0.0后,PagerTabStrip和PagerTitleStrip都没有在第一个显示页面上显示标题(图1),标题仅在刷到另一个页面后绘制(图2)。

使用的库:appcompat-v7

使用的版本:23.0.0

使用的主题:Theme.AppCompat.Light.DarkActionBar,Theme.AppCompat.Light.NoActionBar

设备/ Android版本转载于:Nexus 5 / Android M Developer Preview 2

重现的步骤:

    1. 创建一个新的示例项目,minSdk版本并不重要。
    1. 当系统要求您添加活动时,请选择标签式活动。
    1. 在activity_main.xml中添加PagerTabStrip布局,如下所示:
    2. <android.support.v4.view.PagerTabStrip
          android:id="@+id/title_strip"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:layout_gravity="top"
          android:paddingBottom="4dp"
          android:paddingTop="4dp"
          android:textColor="@android:color/background_dark" />
      

      1. 运行应用

预期结果:viewpager标签条上的标题应该是可见的 发生了什么:除非刷到另一页(图2),否则不会绘制标题(图1)

这里是问题的链接......

https://code.google.com/p/android/issues/detail?id=183127

2 个答案:

答案 0 :(得分:3)

我遇到了同样的问题。这已在版本23.1.0中修复。更新库,清理项目,它应该工作。

答案 1 :(得分:0)

试试这个..

protected override void OnLayout (bool changed, int lValue, int tValue, int rValue, int bValue)
{
    for (int i = 0; i < ChildCount; i++) {
        if (GetChildAt (i).GetType () == typeof(TextView)) {
            ((TextView)GetChildAt (i)).Measure (MeasuredWidth, MeasuredHeight);
        }
    }
    base.OnLayout (changed, lValue, tValue, rValue, bValue);
}