我们如何work-around PagerTitleStrip 和PagerTabStrip 中的空白标题?

How can we work-around the blank title in PagerTitleStrip and PagerTabStrip?

支持 v4(版本 23.0.0)的 PagerTitleStrip 和 PagerTabStrip 存在问题。

使用 PagerTitleStripPagerTabStripViewPager 的标题视图和 [=14= 的版本 23.0.0(用于 Marshmallow/Android 6.0 支持) ] 库无法正确呈现。

问题已被跟踪并计划在未来发布: https://code.google.com/p/android/issues/detail?id=183127 https://code.google.com/p/android/issues/detail?id=184715

更新:此问题现已在 23.1.0 中得到解决。

等待修补版本的临时解决方案是使用这些 classes (22.1.0) 的最新已知良好版本的副本,而不是与支持库捆绑在一起的副本。

将附件拖放到您的项目中,然后使用这些 class 设置您的 ViewPager

注意:不要更改它们的包名称,因为它们依赖于支持库中受保护的包 classes。

示例使用我们的 "new" PagerTabStrip class:

      <android.support.v4.view.ViewPager
          xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="match_parent"
          android:layout_height="wrap_content">   
          <android.support.v4.view.PagerTabStripV22
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:layout_gravity="top"/>   
      </android.support.v4.view.ViewPager>

PagerTitleStripV22.java

PagerTabStripV22.java

我的 "comment" 作为答案,因此不会被忽略。

首先,当您从链接下载文件时,它们将不是正确的文件名,即 .java 文件将缺少 "V22" 的 "V",因此您需要将这两个文件重命名为 "PagerTitleStripV22.java" 和 "PagerTabStripV22.java"。然后按照其他人发布的这些说明进行操作:在您的项目中创建包 "android.support.v4.view" 并将附加的 #31 文件放入创建的包内的项目中,并将 android.support.v4.view.PagerTabStrip 更改为 android.support.v4.view.PagerTabStrip布局文件中的V22.

解决此问题的简单解决方法。

//after setting the adapter
viewPager.post(new Runnable() {
    @Override
    public void run() {
        viewPager.setCurrentItem(1, false);
        viewPager.setCurrentItem(0, false);
        viewPager.postInvalidate();
    }
});

修复发布后评论以上代码。

此问题已在版本 23.1.0 中修复

com.android.support:support-v4:23.1.0