我正在使用 Android 支持库 v13。有一件奇怪的事情我无法理解。
创建新活动时,我将片段加载为:
主要活动布局:
...
<FrameLayout
android:id="@+id/fragment_1"
... />
主要onCreate()
活动:
mFragment = (FragmentActivity) getSupportFragmentManager().findFragmentById(R.id.fragment_1);
// if screen orientation changed, no need to create new instance of fragment
if (mFragment == null) {
mFragment = ...; // create new instance of fragment
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.fragment_1, mFragment);
// because this is called ONCE, we can use this method
ft.commitAllowingStateLoss();
}
现在,一切都在模拟器 1.5、1.6 和 2.2 中完美运行。我有一部手机2.2.2。
但是有一个例外:如果应用程序正在运行,并且屏幕方向发生了变化。里面onActivityCreated()
,getActivity()
有时返回null
。这只发生在模拟器 1.5/ 1.6/ 2.2 中。
我的手机2.2.2运行良好,我测试了数百次,但从未发现该错误。甚至其他模拟器 3.x、4.x 也能正常工作。不幸的是,我没有手机 1.5/ 1.6/ 2.2。
那么你有这方面的经验吗?这是支持库或模拟器的错误吗?