我使用的是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的作品非常好,我试几百次,但从来没有赶上这个bug。 即使是其他仿真3.x中,4.x的工作也很好。 不幸的是我没有电话1.5 / 1.6 / 2.2。
所以,你是否也有这方面的经验? 是支持库,或仿真的一个错误?