[英]Why does my ListView become null after an orientation change in my Fragment?
在我的一个Fragments
我有一个从父Activity
调用的方法。 该方法没什么特别的,它只是将我的ListView
滚动到一个位置。
public void scrollToSomething() {
mListView.smoothScrollToPosition(The position I supply);
}
当我最初调用这个方法时,它就像我期望的那样工作,但是当我旋转我的设备并再次调用它时,我从ListView
抛出一个NullPointerException
。 我很遗憾为什么会这样。 我试过调用setRetainInstance(true)
。 在调用方法之前,我已经尝试检查我的ListView
是否为null,如果是,那么我再次初始化它,但这也不起作用。 我试过用几种不同的方式改变我的onCreateView
,想想可能出现问题。
onCreateView
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
/* The View for the fragment's UI */
final ViewGroup mRootView = (ViewGroup)inflater.inflate(R.layout.fragment_list_base,
container, false);
/* Initialize our ListView */
mListView = (ListView)mRootView.findViewById(R.id.fragment_list_base);
return mRootView;
}
Fragment
使用简单的FragmentStatePagerAdapter
附加到ViewPager
。 我已经仔细查看了我的Fragment
的onDestroy
方法和父Activity
,看看我是否正在调用可能导致错误的东西,但没有什么突出的。 我不确定我遇到的是某种错误,或者我只是忽略了什么。 任何帮助或建议都会很大。 我不完全确定还有什么要补充的,因为我很遗憾为什么会这样,但如果有人有问题,我会发布你认为合适的任何代码。
这可能对你有所帮助
如果你的android:targetSdkVersion="12"
或更少:
android:configChanges="orientation|keyboardHidden">
如果你的android:targetSdkVersion="13"
或更多:
android:configChanges="orientation|keyboardHidden|screensize">
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.