2015-09-03 3 views
25

Существует проблема с PagerTitleStrip и PagerTabStrip с поддержкой-v4 (версия 23.0.0).Как мы можем обойти пустой заголовок в PagerTitleStrip и PagerTabStrip?

Взгляды титул ViewPager при использовании PagerTitleStrip или PagerTabStrip и версии 23.0.0 (для поддержки Зефир/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

Update: Это в настоящее время решены, в 23.1.0.

+2

Отвечая свой собственный вопрос в порядке, было бы лучше, если ваш вопрос содержалось фактический вопрос. :-) – CommonsWare

+3

Это было исправлено с выпуском ** поддержки v23.1.0 **. https://code.google.com/p/android/issues/detail?id=183127#c67 – Marko

ответ

6

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

com.android.support:support-v4:23.1.0

37

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

+0

«Будет исправлено, возможно, на v23.0.2» в соответствии с сообщением об ошибке: https://code.google.com/p/android/issues/detail? id = 185605 – manimaul

+3

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

+0

Почему бы не использовать TabLayout? Я пытался выяснить, лучше ли другой, чем другой, и если на самом деле это не работает, это довольно большой разбойник ... – nAndroid

2

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

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

0

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

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

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

Смежные вопросы