在Android中分离无关的纵向和横向屏幕的最佳方法

问题描述

我有一个仅适用于纵向mod的应用程序。这是一个活动多片段应用程序。

PortraitActivityA
   PortraitFragmentA
   PortraitFragmentB
      PortraitFragmentBA
      PortraitFragmentBB
   PortraitFragmentC

现在,我需要添加一些报告屏幕,但是这些屏幕仅在横向模式下可见。 这些屏幕不代表纵向屏幕,它们具有自己的数据/流。实际上,将有两个单独的应用程序,分别用于纵向和横向。我开始构建该体系结构,但对结果不满意。

PortraitActivityA
   PortraitFragmentA
   PortraitFragmentB
      PortraitFragmentBA
      PortraitFragmentBB
   PortraitFragmentC

LandscapeActivityX
   LandscapeFragmentX
      LandscapeFragmentXX
      LandscapeFragmentXY
      LandscapeFragmentXZ
LandscapeActivityY

我使用android:launchMode="singleTask"进行活动。更改方向后,我将开始适当的活动。

on PortraitActivityA:
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
   startActivity(Intent(this,LandscapeActivityX::class.java))
}

on LandscapeActivityX:
if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
    startActivity(Intent(this,PortraitActivityA::class.java))
}

在这种设计中,我面临一些问题:

在PortraitActivityA中,用户旋转手机,在LandscapeActivityX加载之前的一会儿,PortraitActivityA的横向视图变得可见,这很烦人。

在LandscapeActivityY(PortraitActivityA-> LandscapeActivityX-> LandscapeActivityY)中,用户旋转手机,将启动PortraitActivityA。但是,如果用户再次旋转,将显示LandscapeActivityX,而不显示LandscapeActivityY。跟踪上一次打开的活动并在旋转时再次打开它是不舒服的。

那么实现此应用程序的最佳方法是什么?也许是一项大型活动,并将所有纵向/横向屏幕都保留为碎片?不建议嵌套太多的片段以提高性能,并且不干净。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...