在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 (将#修改为@)