Как мы можем обойти пустой заголовок в PagerTitleStrip и PagerTabStrip?

есть проблема с PagerTitleStrip и PagerTabStrip с поддержкой-v4 (версия 23.0.0).

вид заголовка a ViewPager при использовании PagerTitleStrip или PagerTabStrip и версия 23.0.0 (для поддержки Marshmallow/Android 6.0)support-v4 библиотека не правильно.

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

Update: теперь это было разрешено в 23.1.0.

4 ответов


эта проблема была исправлена в версии 23.1.0

com.андроид.поддержка: поддержка-v4: 23.1.0


промежуточным решением в ожидании исправленного выпуска является использование копии последней известной хорошей версии этих классов (22.1.0) вместо той, которая поставляется в комплекте с библиотекой поддержки.

поместите прикрепленные файлы в свой проект и настройте свой ViewPager С этими классами вместо этого.

Примечание: не изменяйте их имя пакета, поскольку они полагаются на защищенные классы пакета в библиотеке поддержки.

пример использования нашего "нового"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


мой "комментарий" в качестве ответа, поэтому он не упускается из виду.

во-первых, когда вы загружаете файлы из ссылок, они не будут правильными именами файлов, т. е.java-файлы будут отсутствовать "V "для" V22", поэтому вам нужно переименовать оба файла в " PagerTitleStripV22.java " и " PagerTabStripV22.ява." Затем следуйте этим инструкциям, опубликованным кем-то другим: создайте пакет "android.поддержка.В4.просмотр " в вашем проекте и поместите прикрепленные файлы #31 в ваш проект внутри создан пакет и изменить android.поддержка.В4.вид.PagerTabStrip для android.поддержка.В4.вид.PagerTabStripV22 в файле макета.


простое решение для устранения этой проблемы.

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

комментарий приведенный выше код после исправления.