使用片段更改方向 - 错误的活动开始

时间:2011-07-19 02:43:11

标签: android layout android-layout android-activity android-fragments

我有使用片段的应用程序。根据屏幕尺寸和方向,我显示不同的布局:
1。 layout-fragment - 选项列表
2。 layout-fragment - 显示所选择的选项
我在大屏幕中处理方向更改时遇到问题。在纵向模式下,我在一个布局中显示两个片段,但在横向模式下,如果用户选择显示某些,我只显示第二个片段活动。当在这种状态下方向改变为纵向模式时,我想再次显示两个片段,而是我再次显示第二个布局片段活动。
我明白它是android活动管理但是最好的方法是什么它按照我的意愿工作(在纵向模式下始终显示1和2片段)?

感谢您的任何建议!

1 个答案:

答案 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