最近在做平板适配的功能,有点头痛!我主要是想用华为的平行视窗功能来适配。我先是看了官网上的文档,内容有点少。而且出现各种问题,也找不到具体的答案。
华为的技术文档链接:
配置指南-客户端开发-应用开发-平行视界-UI Engine | 华为开发者联盟 (huawei.com)
以下是我适配的过程,超级简单:
1.我先是按照文档内容指示,在AndroidMainifest文档里面添加了配置项:在“AndroidManifest.xml”文件的“application”中新增“meta-data”。
代码:“<application android:allowBackup="false" android:fitsSystemWindows="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/Theme.MyPadTestProject"> <meta-data android:name="EasyGoClient" android:value="true" />”
2.新建assets文件夹(原来项目有就无须再建)
这个文件夹不能随便放,一定要放对位置,要不,里面的文件没有用。
选择"Project"查看: assets文件夹的路径是 项目/app/src/main/assets(位置不能错,错了不行)
3.在asssets文件夹里面创建easygo.json文件(文件名一定不能错)。
4.easygo.json内容添加:最好直接复制华为官网的内容,再进行修改,因为这个文件里面的内容也不允许错一点,哪怕多一个,少一个“,”都不行。里面的配置项目主要解释可以在官网上查看
代码:
{ "easyGoVersion": "1.0", "client": "com.example.mypadtestproject", "logicEntities": [ { "head": { "function": "magicwindow", "required": "true" }, "body": { "mode": "1", "defaultDualActivities": { "mainPages": "com.example.mypadtestproject.MainActivity", "relatedPage": "com.example.mypadtestproject.WhiteActivity" }, "transActivities": [ "com.example.mypadtestproject.WhiteActivity" ], "Activities": [ { "name": " com.example.mypadtestproject.TestActivity", "defaultFullScreen": "true" }, { "name": "com.example.mypadtestproject.MainActivity", "lockSide": "primary" } ], "UX": { "supportRotationUxCompat": "false", "isDraggable": "true", "supportDraggingToFullScreen": "PAD" } } } ] }
5.以上内容都添加好了,直接运行项目在华为平板上看看效果。
注意:版本支持华为折叠屏手机、M系列及以上平板。并不支持所有华为的平板。看平板支持不支持,直接找一下“设置-应用和服务-是否在寻找其他设置项?平行视界”,如果能找到,证明这个设备应该支持的,点击进去“平行视界”会看到很多已经支持平行视界的这个功能的app。我们配置好,运行的时候,看有没有配置成功,也是在这里可以查看,如果你的应用配置成功,会在这个支持平行视界的应用列表中出现。
6.如果没有效果,可以在以下几个小点检查一遍:
1)AndroidMainifest.xml有没有添加 <meta-data android:name="EasyGoClient" android:value="true" />,位置是否正确,代码是否正确
2)assets文件夹位置是否正确
3)easygo.json文件内容有没有完全正确,我试过删代码的时候,漏删了一个逗号,导致效果没有实现
4)看设备是否支持平行视窗,如果设置不支持,那就没办法了
5)在调试代码中,每次更改easygo.json里面的配置内容,一定要先卸载原来的安装包或者要调大应用的版本号,比如原来设备安装的是1.0的包,我把easygo.json重新改了一下,想要修改的配置生效,必须要把设备原来安装的包卸载掉再去运行调试,或者把版本号由原来的1.0改成2.0,再去调试。这样新的配置才能调试生效。
7.想自定义修改分屏比例?怎么办?
官网上默认的分屏比例是1:1。效果就是运行后初始两个屏幕都是一样大,当然把easygo.json里面的 "isDraggable": 设置为"true",这个分屏比例是可以用户自己调整的。但是,但是,估计大部分人都想要做成微信或者飞书那样,首次运行是看起来好像是1:2那种分屏比例吧?
为了弄这个分屏比例,我网上搜索了很久,可惜没有找到方法,官网上给出的配置内容也没有提到这个修改分屏比例。
我无意中看到有人回答问题的时候,发了半个截图上来。截图上是easygo.json的配置文档,不过只有部分,那个截图,我现在也找不到了。我看到了有部分代码是这样的;
"windowsRatio": [{"device": "FOLD",
"ratio": "1056|1138"},{"device":"PAD","ratio": "900|1654"}],
我放在自己的项目中:
看起来是调整比例的,我就把它手打出来,放在easygo.json中,运行一看,真的是呀!看看我添加代码后的运行效果:
这里有个bug:就是我要把 "isDraggable": 设置为"false",这个分屏比例才能实现,但是某些项目设置为true也是可以实现首次运行比例是这样的。估计还没有做好,所以官网才没有文档说明。
8.修改默认的黑色分割线颜色?
这个微信和飞书上是实现了,但是我暂时没有找到能修改成功的方法,在网上也没有找到相关代码。如果有人实现了,请给我留言呀!