我在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(...),那么整个事情就会出乎意料地行为不端。
任何想法???
答案 0 :(得分:0)
要获得有效的解决方案,我们需要查看您的片段代码,但如果您没有将offScreenPageLimit设置为视图寻呼机,则会创建当前片段的1个前一个片段和下一个片段。创建所有这三个片段并调用默认的片段生命周期方法,如onCreate,onViewCreated等。
如果要更改自己的一个片段中的标题,这些片段将在将Screen ScreenLimit设置为2或更多时创建,则可以获得此行为。
例如,让我们说你当前的片段是C,你的视图寻呼机包含一个b C d e,你可以在一个或多个e片段或其他片段中更改第二个或更多位置的标题。
我希望这会帮助你。