Ответ 1
Эта проблема была исправлена в версии 23.1.0
com.android.support:support-v4:23.1.0
Есть проблема с 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.
Эта проблема была исправлена в версии 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();
}
});
Прокомментируйте приведенный выше код после освобождения исправления.