gpt4 book ai didi

android - 在Android中旋转后获取ViewPager的位置

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:46:56 27 4
gpt4 key购买 nike

我有一个 ViewPager。我的 FragmentPageAdapter 返回 Viewpager 在 getItem() 方法中的位置。但是在旋转屏幕之后,该方法没有返回任何值。为什么?如果我理解正确,每次旋转屏幕时都会调用 OnCreateView(),但为什么它不再返回值?有人可以指出如何解决这个问题吗?谢谢

编辑:我的 FragmentPageAdapter:

public Fragment getItem(int position) {

return Fragment_results.newInstance(position);
}

我的 fragment :

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);

最佳答案

在创建 ViewPager 实例以及设置新适配器时,位置设置为 0。当 onCreateView() 被调用时,您实际上是在重建整个应用程序。为了恢复到原来的位置,您必须首先使用 onSavedInstanceState(Bundle savedInstanceState) 并通过 Bundle 存储项目位置。

@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt("pageItem", myViewPager.getCurrentItem());
}

然后在 onCreate 中,像这样恢复 viewPager 的状态:

if (savedInstanceState != null) {
myViewPager.setCurrentItem(savedInstanceState.getInt("pageItem", 0));
}

关于android - 在Android中旋转后获取ViewPager的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12622588/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com