使用碎片时,处理方向改变的正确方法是什么?碎片和方向改变
我有一个包含2个片段的横向布局(在代码中实例化成FrameLayout
s)。当我切换到肖像模式(其布局仅包含一个仅包含左窗格的FrameLayout
)时,右边的片段不再需要。
我收到一个错误:
E/AndroidRuntime(4519): Caused by: java.lang.IllegalArgumentException: No view found for id 0x7f060085 for fragment myFragment{418a2200 #2 id=0x7f060085}
这是假定是我的活动试图重新附上它的方向改变之前,但该片段包含片段画像不存在的观点模式错误被抛出。
我试过以下隐藏/删除/分离方法,但仍然得到错误。告诉片段不再需要的正确方法是什么,并且不要尝试显示?
@Override
public void onCreate(Bundle b) {
super.onCreate(b);
Fragment f = getSupportFragmentManager().findFragmentById(R.id.fragholder2);
//rightPane is a framelayout that holds my fragment.
if (rightPane == null && f != null) {
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.hide(f); // This doesnt work
ft.remove(f); // neither does this
ft.detach(f); // or this
ft.commit;
}
}
同样的问题,但解决方案没有帮助我的情况出于某种原因。 http://stackoverflow.com/questions/6164341/handling-orientation-changes-with-fragments – Kuffs 2012-04-02 13:26:38
此博客提供了处理方向更改的所有选项http://www.techrepublic.com/blog/android-app-builder/处理方向改变在android-ui-framework/ – 2013-07-28 11:35:11
哎呀!没有检查日期。无论如何,我只将它连接起来,因为它显示了所有可用的选择,并真正帮助了我。如您所知,代码在这里和其他地方的解决方案中可用,因此提交了评论而不是解决方案。我不知道如何提供这些信息,我发现它非常有用。 – 2013-07-28 19:16:18