我们如何解决PagerTitleStrip和PagerTabStrip中的空白标题?

时间:2015-09-03 14:55:10

标签: android android-viewpager android-support-library

PagerTitleStrip和PagerTabStrip与support-v4(版本23.0.0)存在问题。

使用ViewPagerPagerTitleStripPagerTabStrip的标题视图以及support-v4库的版本23.0.0(用于支持Marshmallow / Android 6.0)并不# 39; t正确渲染。

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

更新:现在已经在23.1.0中解决了这个问题。

4 个答案:

答案 0 :(得分:37)

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

将附加的文件放入项目中,然后使用这些类设置ViewPager

注意:请勿更改其包名,因为它们依赖于支持库中的包受保护的类。

使用我们的" new" PagerTabStrip课程:

      <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

答案 1 :(得分:6)

此问题已在版本23.1.0中修复

com.android.support:support-v4:23.1.0

答案 2 :(得分:2)

我的评论&#34;作为答案,所以不要忽视它。

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

答案 3 :(得分:1)

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

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

修复发布后,请注释上述代码。