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 или другие фрагменты во второй или более позициях.

Я надеюсь, что это поможет вам.

Другие вопросы по тегам