我有一个ViewPager.我的FragmentPageAdapter在getItem()方法中返回Viewpager的位置.但是在旋转Screen之后,methode没有返回任何值.为什么?如果我理解正确,每次旋转屏幕时都会调用OnCreateView(),但为什么不再返回该值?有人能指出如何解决这个问题吗?谢谢
编辑:我的FragmentPageAdapter:
public Fragment getItem(int position) {
return Fragment_results.newInstance(position);
}
Run Code Online (Sandbox Code Playgroud)
我的碎片:
public static Fragment_results newInstance(int i) {
Fragment_results fragment = new Fragment_results();
fragment.mContent = i +"";
return fragment;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.layout_result, null);
((TextView) view.findViewById(R.id.text)).setText(mContent);
Run Code Online (Sandbox Code Playgroud)
Dee*_*eeV 12
创建ViewPager实例以及设置新适配器时,位置设置为0.在onCreateView()调用时,您基本上正在重建整个应用程序.为了恢复到原来的位置,您必须首先onSavedInstanceState(Bundle savedInstanceState)通过Bundle 使用和存储项目位置.
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt("pageItem", myViewPager.getCurrentItem());
}
Run Code Online (Sandbox Code Playgroud)
然后onCreate,恢复viewPager的状态,如下所示:
if (savedInstanceState != null) {
myViewPager.setCurrentItem(savedInstanceState.getInt("pageItem", 0));
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3389 次 |
| 最近记录: |