tyc*_*czj 2 android screen-orientation android-fragments
我有一个包含片段的活动,当点击该片段上的某些内容时,我将该片段替换为另一个片段.如果设备在第二个片段中旋转,则会onCreate调用该活动并再次重新创建第一个片段.
如何在设备旋转时停止onCreate被调用?
在我的清单中我有这个
<activity android:name="CalActivity" android:configChanges="orientation|keyboardHidden"/>
Run Code Online (Sandbox Code Playgroud)
我的理解是,将configChanges添加到该活动可防止活动被销毁和重新创建,但onCreate仍会被调用并混乱碎片.
我也尝试过setRetainInstance()插入片段,这也没有帮助
如果设备没有旋转,片段就像它们应该的那样工作,我不想让它成为一个只有一个方向的活动,那就更像是一个黑客而不是实际修复问题
我还可以做些什么?
编辑:
这就是我创建片段的方式
Fragment miniMonthFrag = new MonthByWeekFragment(System.currentTimeMillis(), false);
ft.replace(R.id.cal_frame, miniMonthFrag).commit();
Run Code Online (Sandbox Code Playgroud)
而不是使用替换使用:
FragmentManager fm = getFragmentManager();
if (fm.findFragmentById(R.id.cal_frame) == null) {
mFragment = new MonthByWeekFragment(System.currentTimeMillis(), false);
fm.beginTransaction().add(R.id.cal_frame, mFragment ).commit();
} else {
mFragment = (MonthByWeekFragment) fm.findFragmentById(R.id.cal_frame);
}
Run Code Online (Sandbox Code Playgroud)
这将确保您在旋转后使用预先存在的片段.
| 归档时间: |
|
| 查看次数: |
2651 次 |
| 最近记录: |