我有使用片段的应用程序。根据屏幕尺寸和方向,我显示不同的布局:
1。 layout-fragment - 选项列表
2。 layout-fragment - 显示所选择的选项
我在大屏幕中处理方向更改时遇到问题。在纵向模式下,我在一个布局中显示两个片段,但在横向模式下,如果用户选择显示某些,我只显示第二个片段活动。当在这种状态下方向改变为纵向模式时,我想再次显示两个片段,而是我再次显示第二个布局片段活动。
我明白它是android活动管理但是最好的方法是什么它按照我的意愿工作(在纵向模式下始终显示1和2片段)?
感谢您的任何建议!
答案 0 :(得分:0)
这是因为您在方向更改时重新创建了第二个活动(仅显示一个碎片)。
这里你可以做的是检查onCreate中的方向,如果是纵向 - 以合适的意图启动Activity_1,以便它可以启动第二个frag以获得正确的详细信息。当然,您还必须编辑Activity_1以在onCreate中检查此意图..
一些示例代码,其中intent具有针对详细对象的操作ACTION_VIEW和uri。
Activity_2(一个片段 - 只应在横向上使用)
// in method onCreate
// assume orientation is checked and boolean set
if (isPortraitOrientation) {
startActivity(suitableIntent); // ACTION_VIEW with uri
finish();
return;
} else {
// load fragment
}
Activity_1(如果方向允许,则显示两个片段
// check intent
// assume orientation checked and boolean set
final Intent intent = getIntent();
final String action = intent.getAction();
Log.v(TAG, " - action: " + action);
if (isPortraitOrientation && Intent.ACTION_VIEW.equals(action)) {
// load fragment with selected choice
}
推荐的方向检查: Check orientation on Android phone