Как мы можем обойти пустой заголовок в PagerTitleStrip и PagerTabStrip?
Существует проблема с PagerTitleStrip и PagerTabStrip с support-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.
4 ответа
Эта проблема была исправлена в версии 23.1.0
com.android.support:support-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>
Мой "комментарий" как ответ, поэтому он не упущен из виду.
Во-первых, когда вы загружаете файлы по ссылкам, они не будут иметь правильных имен файлов, т.е. в файлах.java будет отсутствовать буква "V" для "V22", поэтому вам нужно будет переименовать оба файла в "PagerTitleStripV22.java". и "PagerTabStripV22.java". Затем следуйте этим инструкциям, опубликованным кем-то другим: создайте пакет "android.support.v4.view" в своем проекте и поместите вложенные файлы #31 в свой проект внутри созданного пакета и измените android.support.v4.view.PagerTabStrip на android.support.v4.view.PagerTabStripV22 в вашем файле макета.
Простой обходной путь для решения этой проблемы.
//after setting the adapter
viewPager.post(new Runnable() {
@Override
public void run() {
viewPager.setCurrentItem(1, false);
viewPager.setCurrentItem(0, false);
viewPager.postInvalidate();
}
});
Прокомментируйте приведенный выше код, как только исправление будет выпущено.