Android华为平行视界/小米横屏模式适配(左右分屏)

近期项目上提了一个需求,要在平板横屏状态下分屏显示内容,且分屏界面为同一应用界面。在查阅了大量文档后,确认这是华为实现的一种分屏方案叫做平行视界。

       平行视界,是华为首创的应用内分屏功能,已经在华为平板M6与华为MatePad Pro上发布。和安卓系统分屏提供是两个应用间的分屏不同的是,它提供应用内两个窗口可以在屏幕上左右同时显示的功能,从而使安卓平板的使用体验有了革命性突破。

平行视界的核心技术主要分为:双窗口分离显示技术、双窗口生命周期管理、双窗口显示模式。

由于只有一台小米平板做为测试设备,开始还在担心如何测试,后来发现按照华为平行视界的适配方案在小米设备一样生效。推测厂商在这方面的实现无差异。

一,AndroidManifest.xml

application节点内添加即可


二,easygo.json

工程目录下新增配置文件

Android华为平行视界/小米横屏模式适配(左右分屏)_第1张图片

 此文件内容非常重要,由于网上说明文档非常少,在多次实验验证后得到以下配置内容,可实现横屏进入主界面,跳转新界面时分屏显示。

{
  "easyGoVersion": "1.0",
  "client": "com.test.AndroidBeta",
  "logicEntities": [
    {
      "head": {
        "function": "magicwindow",
        "required": "true"
      },
      "body": {
        "mode": "1",
        "activityPairs": [
          {
            "from": "com.test.Android.AndroidActivity",
            "to": "*"
          }
        ],
        "Activities": [
          {
            "name": "com.test.Android.AndroidActivity",
            "defaultFullScreen": "false"
          },
          {
            "name": "com.test.Android.SecondActivity",
            "defaultFullScreen": "false"
          }
        ],
        "UX": {
          "supportRotationUxCompat": "true",
          "isDraggable": "true",
          "supportDraggingToFullScreen": "PAD"
        }
      }
    }
  ]
}

判断当前处于平行视界

/**
     * 判断是否处于平行视界
     * @return true/false
     */
    protected boolean isInMagicWindow(){
        String config = this.getResources().getConfiguration().toString();
        return config.contains("hwMultiwindow-magic") || config.contains("miui-magic-windows");
    }

更正一下判断平行视界的方式,早期判断小米平板是可以的,后来小米应该是换了方案,华为的那套不行了。现在这个适配方案只适用于华为设备。

public boolean isInMagicWindow(){
        String config = mContext.getResources().getConfiguration().toString();
        return config.contains("hw-magic-windows");
    }

华为官方文档:文档中心

你可能感兴趣的:(随笔记录,华为)