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, который я использую для переключения заголовка на панели инструментов всякий раз, когда просматриваются представления просмотрщика.

Я также вызываю setTitle(...), чтобы установить заголовок для начального экрана.

Проблема со всем этим заключается в том, что я устанавливаю setOffscreenPageLimit(...), и когда я это делаю, этот первоначальный вызов setTitle(...) переопределяется, скрывается или что-то в этом роде. Название просто исчезает!!!

Если я удалю setOffscreenPageLimit(...), то все будет работать неправильно, как и ожидалось.

Любые идеи???


person The Hungry Androider    schedule 05.08.2015    source источник
comment
Можете ли вы показать нам код своей деятельности?   -  person Sérgio Moura    schedule 05.08.2015


Ответы (1)


Для эффективного решения нам нужно увидеть код вашего фрагмента, но если вы не установите offScreenPageLimit для пейджера просмотра, он создаст 1 предыдущий и один следующий фрагмент вашего текущего фрагмента. Все эти три фрагмента создаются и вызывают методы жизненного цикла фрагментов по умолчанию, такие как onCreate, onViewCreated и т. д.

Если вы меняете свой заголовок в одном из своих фрагментов, который будет создан, когда вы установите для параметра offScreenPageLimit значение 2 или более, вы можете добиться такого поведения.

Например, предположим, что ваш текущий фрагмент - C, а ваш пейджер содержит b C d e, и вы меняете заголовок во фрагментах a или e или других фрагментах во второй или более позиции.

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

person savepopulation    schedule 05.08.2015