How can we work-around the blank title in PagerTit

2019-01-07 22:18发布

There's an issue with PagerTitleStrip and PagerTabStrip with support-v4 (version 23.0.0).

The title views of a ViewPager when using PagerTitleStrip or PagerTabStrip and the version 23.0.0 (for Marshmallow/Android 6.0 support) of the support-v4 library doesn't render correctly.

Issue is tracked and scheduled for Future Release on: https://code.google.com/p/android/issues/detail?id=183127 https://code.google.com/p/android/issues/detail?id=184715

Update: This have now been resolved, in 23.1.0.

4条回答
女痞
2楼-- · 2019-01-07 22:26

An interim solution while waiting for a patched release is to use a copy of the latest known good version of these classes (22.1.0) instead of the one bundled with the support library.

Drop the attached files into your project and setup your ViewPager with these classes instead.

Note: do not change their package name as they rely on package protected classes in the support library.

Example using our "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

查看更多
孤傲高冷的网名
3楼-- · 2019-01-07 22:41

My "comment" as an answer so it's not overlooked.

First when you download the files from the links they will not be the correct file names i.e., the .java files will be missing the "V" for "V22", so you'll need to rename both files to "PagerTitleStripV22.java" and "PagerTabStripV22.java". Then follow these instructions posted by someone else: Create package "android.support.v4.view" in your project and drop the attached by #31 files into your project inside created package and change android.support.v4.view.PagerTabStrip to android.support.v4.view.PagerTabStripV22 in your layout file.

查看更多
家丑人穷心不美
4楼-- · 2019-01-07 22:47

This issue was fixed in version 23.1.0

com.android.support:support-v4:23.1.0

查看更多
不美不萌又怎样
5楼-- · 2019-01-07 22:53

Simple workaround to fix this issue.

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

Comment the above code once the fix is released.

查看更多
登录 后发表回答