ViewPager с setOffscreenPageLimit скрывает мой начальный заголовок Activity
Я использую стандартный ViewPager внутри Activity. Очень простые вещи:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<include layout="@layout/toolbar" />
<android.support.design.widget.TabLayout
android:id="@+id/sliding_tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/new_teal"/>
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
Теперь, в коде моей активности, у меня есть OnPageChangeListener, который я использую, чтобы переключать заголовок на панели инструментов всякий раз, когда пролистываются представления viewpager.
Я также вызываю setTitle (...), чтобы установить заголовок для начального экрана.
Проблема со всем этим заключается в том, что я устанавливаю setOffscreenPageLimit(...), и когда я это делаю, первоначальный вызов setTitle (...) переопределяется или скрывается или что-то в этом роде. Название просто исчезает!!!
Если я удаляю setOffscreenPageLimit(...), то все происходит неправильно, как и ожидалось.
Есть идеи???
1 ответ
Для эффективного решения нам нужно увидеть код вашего фрагмента, но если вы не установите offScreenPageLimit для пейджера просмотра, он создаст 1 предыдущий и один следующий фрагмент вашего текущего фрагмента. Все эти три фрагмента создаются и вызывают методы жизненного цикла фрагментов по умолчанию, такие как onCreate, onViewCreated и т. Д.
Если вы изменяете свой заголовок в одном из ваших фрагментов, который будет создан, когда вы установите offScreenPageLimit равным 2 или более, вы можете получить это поведение.
Например, скажем, ваш текущий фрагмент - C, а ваш пейджер просмотра содержит a b C d e, и вы меняете заголовок во фрагментах a или e или другие фрагменты во второй или более позициях.
Я надеюсь, что это поможет вам.