为什么 inside ViewPager 在 ViewPager inside ViewPager case 中丢失页面?
Why inside ViewPager lost pages in ViewPager inside ViewPager case?
我有一个奇怪的错误,当我在外部 viewpager 中滑动超过 2 页时,它会在 viewPager 中消失。 (viewpager 中的限制为 1)
如果我只向左滑动一页或向右滑动一页就可以了。当我滑出限制并且页面被丢弃并且必须重新创建时,就会出现问题。如何解决?我不能增加太多限制。 :(
我有:
//layout/outside.xml
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white">
<android.support.v4.view.ViewPager
android:id="@+id/outside_viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</FrameLayout>
和:
//layout/inside.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white">
<android.support.v4.view.ViewPager
android:id="@+id/inside_viewpager"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
private static class InsidePagerAdapter 扩展了 FragmentPagerAdapter {
private Context context;
private final List<Element> mElements;
public InsidePagerAdapter(Context context, FragmentManager fragmentManager, List<Element> elements) {
super(fragmentManager);
this.context = context;
mElements = elements;
}
@Override
public int getCount() {
return mElements.size();
}
@Override
public InsideFragment getItem(int position) {
return InsideFragment.newInstance(position);//InsideFragment uses layout/inside.xml
}
}
我修好了。对于有同样问题的人。
当我创建 InsidePagerAdapter 和 OutsidePageAdapter 时,我必须传递 getChildFragmentManager()
而不是 getFragmentManager()
我有一个奇怪的错误,当我在外部 viewpager 中滑动超过 2 页时,它会在 viewPager 中消失。 (viewpager 中的限制为 1) 如果我只向左滑动一页或向右滑动一页就可以了。当我滑出限制并且页面被丢弃并且必须重新创建时,就会出现问题。如何解决?我不能增加太多限制。 :(
我有:
//layout/outside.xml
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white">
<android.support.v4.view.ViewPager
android:id="@+id/outside_viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</FrameLayout>
和:
//layout/inside.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white">
<android.support.v4.view.ViewPager
android:id="@+id/inside_viewpager"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
private static class InsidePagerAdapter 扩展了 FragmentPagerAdapter {
private Context context;
private final List<Element> mElements;
public InsidePagerAdapter(Context context, FragmentManager fragmentManager, List<Element> elements) {
super(fragmentManager);
this.context = context;
mElements = elements;
}
@Override
public int getCount() {
return mElements.size();
}
@Override
public InsideFragment getItem(int position) {
return InsideFragment.newInstance(position);//InsideFragment uses layout/inside.xml
}
}
我修好了。对于有同样问题的人。
当我创建 InsidePagerAdapter 和 OutsidePageAdapter 时,我必须传递 getChildFragmentManager()
而不是 getFragmentManager()