Android ViewPager 无法加载第三个 fragment

标签 android android-fragments android-viewpager

当我将 3 个 Fragments 加载到 ViewPager 时,我鼓励这个问题 每次我启动 Activity 时,只有 2 个 fragment ( fragment 1 和 fragment 2)被加载。 我不知道为什么没有加载 Fragment 3。

下面是我的代码

Activity

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_register_testing);
        // load pager data
        viewPager = (ViewPager) findViewById(R.id.pagerTestingRegister);
        List<Fragment> fragments = new ArrayList<>();
        fragments.add(new Fragment1());
        fragments.add(new Fragment2());
        fragments.add(new Fragment3());

        viewPager.setAdapter(new RegisterTestingFragmentPagerAdapter(getSupportFragmentManager(), fragments));

Activity 界面

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/expense1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
tools:context=".Expense1">

<TabHost
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/tabHost">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">
        <HorizontalScrollView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:id="@+id/scrollTabHost"
            android:fillViewport="true"
            android:scrollbars="none">
            <TabWidget
                android:id="@android:id/tabs"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="bottom"></TabWidget>
        </HorizontalScrollView>



        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <android.support.v4.view.ViewPager
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:persistentDrawingCache="all"
                android:id="@+id/pagerTestingRegister">
            </android.support.v4.view.ViewPager>
        </FrameLayout>
    </LinearLayout>
</TabHost>

适配器

public class RegisterTestingFragmentPagerAdapter extends FragmentPagerAdapter {
List<Fragment> fragments;

public RegisterTestingFragmentPagerAdapter(FragmentManager fragmentManager, List<Fragment> fragments){
    super(fragmentManager);
    this.fragments = fragments;
}

public RegisterTestingFragmentPagerAdapter(FragmentManager fragmentManager){
    super(fragmentManager);
    //this.fragments = fragments;
}

@Override
public android.support.v4.app.Fragment getItem(int position) {
    return fragments.get(position);
}

@Override
public int getCount() {
    return fragments.size();
}

最佳答案

这对我有用:

mViewPager.setOffscreenPageLimit(2);

Angad Tiwari 所述在这个comment

关于Android ViewPager 无法加载第三个 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33051682/

相关文章:

Android,LinearLayout 不会滚动

android - 在 frameLayout 中放置一个按钮

android - Listview - 屏幕底部的页脚

android - 如何从适配器中消除 DialogFragment?

android - 底部带有可隐藏 fragment 的 CoordinatorLayout

android - 工具栏和 TabLayout 在 Android 4.4 设备上不可见

android - 滑动时 ViewPager 更新 fragment

java - Android - 清除 Intent

android - 如何检查抽屉导航是否打开?

android - 在TabLayout( Material 设计)android中动态添加和删除标签