ViewPager与setOffscreenPageLimit隐藏我的初始活动标题

时间:2015-08-05 16:19:02

标签: android android-viewpager android-toolbar android-titlebar

我在Activity中使用标准的ViewPager。非常基本的东西:

<?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>

现在,在我的acitivity的代码中,我有一个OnPageChangeListener,每当viewpager的视图被分页时,我用它来切换工具栏中的标题。

我也在调用setTitle(...)来设置初始屏幕的标题。

所有这一切的问题是我正在设置setOffscreenPageLimit(...),当我这样做时,对setTitle(...)的初始调用被覆盖或隐藏或者其他东西。标题就消失了!

如果我删除了setOffscreenPageLimit(...),那么整个事情就会出乎意料地行为不端。

任何想法???

1 个答案:

答案 0 :(得分:0)

要获得有效的解决方案,我们需要查看您的片段代码,但如果您没有将offScreenPageLimit设置为视图寻呼机,则会创建当前片段的1个前一个片段和下一个片段。创建所有这三个片段并调用默认的片段生命周期方法,如onCreate,onViewCreated等。

如果要更改自己的一个片段中的标题,这些片段将在将Screen ScreenLimit设置为2或更多时创建,则可以获得此行为。

例如,让我们说你当前的片段是C,你的视图寻呼机包含一个b C d e,你可以在一个或多个e片段或其他片段中更改第二个或更多位置的标题。

我希望这会帮助你。