Подтвердить что ты не робот

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

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

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

Проблема отслеживается и запланирована для будущей версии: https://code.google.com/p/android/issues/detail?id=183127 https://code.google.com/p/android/issues/detail?id=184715

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

4b9b3361

Ответ 1

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

com.android.support:support-v4:23.1.0

Ответ 2

Временным решением при ожидании исправленной версии является использование копии последней известной хорошей версии этих классов (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

Ответ 3

Мой "комментарий" в качестве ответа, чтобы он не упускал из виду.

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

Ответ 4

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

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

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