更改方向后,如果我在列表中选择一个项目,我的vIEwpager活动(列表/详细信息类型)将被重新创建并崩溃.
我不想打扰你所有的细节(有一个nullpointerexception,因为onCreateVIEw()中引用的textvIEw为null).
我的问题是:VIEwPager如何在每个页面中显示一个片段而不调用它们的onCreateVIEw()?
在转动设备之前,如何在应用程序启动后正常工作?
我只有2页/片段.但我看到调试器在重新创建此活动时会创建4个片段.你知道为什么以及在哪里记录这些内容?
有解决方案吗在此先感谢您的帮助.我迷失在这里,因为我自己不控制碎片,vIEwpager.
==========
更新:请在下面找到其他要求的信息
public class DetailFragment extends Fragment { TextVIEw mDetailTV; // RetrIEve the data to display from the parent activity private String getData() { VIEwPagerActivity activity = (VIEwPagerActivity)getActivity(); return( activity.detailArray[activity.mposition] ); } @OverrIDe public VIEw onCreateVIEw(LayoutInflater inflater, VIEwGroup container, Bundle savedInstanceState) { VIEw vIEw = inflater.inflate(R.layout.layout_detail_fragment, container, false); mDetailTV = (TextVIEw)vIEw.findVIEwByID(R.ID.detailTV); displayDetail(getData()); return vIEw; } // display data voID displayDetail(String data) { mDetailTV.setText(data); }
并且列表和细节片段被实例化并传递给Pager Adapter,如下所示:
mListFragment = new ListFragmentt();mDetailFragment = new DetailFragment();mPagerAdapter = new MFragmentPagerAdapter(getSupportFragmentManager(), mListFragment, mDetailFragment);
此外,列表/细节中的数据来自经典的Skakespeare示例,因此我怀疑三星S4上的内存不足.
解决方法:
我通过删除FragmentActivity超类的onSaveInstanceState调用来解决我的问题,如下所示:
protected voID FragmentActivity(Bundle outState){
}
但我仍然不明白FragmentActivity的超类正在发生什么.这只是一个直观的猜测,成功了.我不明白它背后的理论.如果有人可以尝试解释一下,那就太好了.
总结以上是内存溢出为你收集整理的android – 在配置更改后未在viewpager中调用Fragment.onCreateView()全部内容,希望文章能够帮你解决android – 在配置更改后未在viewpager中调用Fragment.onCreateView()所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)