首页 文章

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

提问于
浏览
2

我有使用片段的应用程序 . 根据屏幕尺寸和方向,我显示不同的布局:

  1. layout-fragment - 选择列表
  2. layout-fragment - 显示选择的选项
    在大屏幕处理方向更改时遇到问题 . 在纵向模式下,我_9988904_m仅显示第二个片段活动 . 当处于此状态时,方向更改回纵向模式,我想再次显示两个片段,而是再次显示第二个布局片段活动 .
    我知道它是android活动管理但是什么是让它按照我想要的方式工作的最佳方法(在纵向模式下总是显示1和2片段)?

谢谢你的任何建议!

1 回答

  • 0

    这是因为您的第二个活动(仅显示一个碎片)会在方向更改时重新创建 .

    你可以在这里做的是检查onCreate中的方向,如果是纵向 - 以合适的意图启动Activity_1,以便它可以启动第二个碎片以获得正确的细节 . 当然,您还必须编辑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

相关问题