android分屏后布局变化问题,Android分屏多窗口实践
Android N 中推出了多窗口支持,项目要求适配多窗口模式,记录一下。
1.生命周期:对于完全没有适配多窗口的APP来说,当启用多窗口模式或者拖动窗口时,会出现Activity销毁重新加载的现象。 解决方法:在manifest文件里面给activity加上下面一行属性
android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation"
2.当启用多窗口模式时,可能有改变原UI的需求,这时可以在代码里面修改:
@Override
public void onMultiWindowModeChanged(boolean isInMultiWindowMode) {
super.onMultiWindowModeChanged(isInMultiWindowMode);
//在此处根据isInMultiWindowMode来适配多窗口UI
}
onMultiWindowModeChanged在Activity,fragment里面都有,会在多窗口模式变化的时候调用该方法。不过注意了,当已经是多窗口模式时,进入新页面,并不会调用该方法。那怎么办呢?可以用下面这个方法来判断当前是否是多窗口状态,最低兼容SDK版本是24:
Activity().isInMultiWindowMode()
可以用Activity的这个方法判断。当是多窗口时隐藏或者显示某些布局。
3.如果要在拖动多窗口的过程中,动态改变布局,可以在manifest文件里面对相应的activity配置,例如:
android:name="com.android.multiwindowplayground.activities.MinimumSizeActivity"
android:launchMode="singleInstance"
android:taskAffinity="">
android:defaultHeight="500dp"
android:defaultWidth="750dp"
android:gravity="top|end"
android:minWidth="500dp"
android:minHeight="500dp" />
然后在activity的布局文件里面,设置线性布局的layout_gravity和权重:
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
android:orientation="vertical">
android:id="@+id/scrollview"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_gravity="top"
android:layout_weight="0.75">
android:id="@+id/description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:textColor="@color/white" />
layout="@layout/logging"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_gravity="bottom"
android:layout_weight="0.25" />
就会在拖动的过程中自动改变。这是Android官方的一个demo。
4.在拖动多窗口的过程中,也可以在代码里面动态设置,会调用onConfigurationChanged方法,在Configuration newConfig参数中有很多信息,就有当前应用的宽高信息。
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
int screenWidthDp=newConfig.screenWidthDp;
int screenHeightDp=newConfig.screenHeightDp;
//根据宽高动态改变布局
}
android分屏后布局变化问题,Android分屏多窗口实践相关推荐
- 解决电脑扩展屏后图标老是显示在副屏问题
现象:解决电脑扩展屏后图标老是显示在副屏问题 思路:网上找了一些,花了2小时,分析各种原因.总结如下 这个是罪魁祸首,这个是左面图标强制恢复软件 如果你在扩展屏幕期间恢复的话,恢复在副屏后,就会一直显 ...
- android横竖屏切换布局闪退,Android-Activity横竖屏切换不杀死Activity 并监听横竖屏切换...
在上一篇博客,Android-Activity临时数据的保存,中讲解到,当发生横竖屏切换的时候,系统会杀死Activity并重新启动Activity 系统会杀死Activity 12-12 08:11 ...
- 在Android中处理屏幕布局变化
说明 以编程方式处理屏幕布局,锁定屏幕布局.控制活动生命周期,本文简明讲述以编程方式管理屏幕布局,每个小节都聚焦于这个主题的不同方面. 手动处理布局变化 首个显要的讨论点是如何手动处理布局变化. 一个 ...
- Android手机投屏后没有声音,乐播投屏电视没有声音怎么办_乐播投屏电视没有声音手机有声音解决办法_3DM手游...
乐播投屏是一个非常不错的投屏软件,操作使用简单,最近不少小伙伴都在用.但是在使用乐播投屏的时候,有很多小伙伴出现了电视没有声音手机有声音的情况,这是怎么回事呢?我们一起来看看乐播投屏电视没有声音的解决 ...
- android软键盘把布局顶上去,Android 软键盘弹出时把原来布局顶上去的解决方法
键盘弹出时,会将布局底部的导航条顶上去. 解决办法: 在mainfest.xml中,在和导航栏相关的activity中加: android:name=".filing.MainActivit ...
- (已解决)win10+ubuntu18.04双系统,ubuntu锁屏后无法唤醒,重启黑屏闪烁无法进入命令行模式
事发经过: 台式机双系统 win10 + Ubuntu16.04,大部分时间在Ubuntu16.04下工作.一个不小心(dist-upgrade)升级到了ubuntu18.04后,在一次锁屏后发现再也 ...
- mysql分表后怎么索引_分库分表后的索引问题
摘要 最近遇到一个慢sql,在排查过程中发现和分库分表后的索引设置有关系,总结了下问题. 问题 在进行应用健康度盘点时,发现有个慢sql 如下 select brandgoodid from bran ...
- kali锁屏后无法唤醒_联想电脑锁屏后无法唤醒_win10联想休眠怎么唤醒黑屏图文步骤...
2020-02-15 12:59:37 大家在使用电脑时为了保护电脑的安全,我们一般会设置密码.那么之后我们开机或者唤醒睡眠的时候,往往会先弹出一个锁屏界面.但有的网友却觉得这样很是麻烦,想要关闭锁屏 ...
- 同步手绘板——android端下笔后颜色变化
实现效果 : 在设计之初我们以为是改变笔线条的粗细来实现类似效果,后来通过找其他相关软件比对发现是不改变线条的粗细,通过改变透明度实现下笔后颜色的渐变,虽然已实现,但渐变效果很一般,不流畅,算法还待优 ...
最新文章
- 高效职场人不得不懂的“脑”知识
- MVP 2008全球峰会可预订宾馆,寻室友
- .net 实现 URL重写,伪静态 1
- C++|Qt笔记-关于extern和namespace的区别与联系
- 带你上手全新版本的Webpack 5
- fetchtype 动态控制_hibernate 中 fetch=FetchType.LAZY 懒加载失败处理方法
- uc3842开关电源电路图_详解6款简单的开关电源电路设计原理图
- 传统企业连接互联网的五种方式
- 解决github下载及访问不稳定问题
- Zotero批量下载知网文献
- matlab画进化树分析图,教你用ggtree绘制高颜值进化树
- java mail 匿名_java开发邮件发送匿名
- 什么是无线信号的灵敏度和保真度
- signature=2a6f113e0dca986b5f4efd92dac9c1cb,android so 文件存私密数据,且防止 so文件未知应用盗用...
- 单面打印机打印双面小册子
- opencv把图片转换成二进制_Python+OpenCV实现将图像转换为二进制格式
- 用js创建audio对象实现网页迷你音乐播放器
- 安卓Android手机直播推送同步录像功能设计与实现源码
- C语言课程设计——宾馆管理系统
- python处理通达信数据,加入BOLL通道数据,量化交易
热门文章
- Markdown实用快捷键
- 看到自己的体检报告,小灰瑟瑟发抖
- 四川阆中2021中学高考成绩查询入口,2021年四川高考体检报告结果查询时间及查询网址入口...
- Chrome浏览器对统一资源发出多个请求时,导致最多停止20s问题
- 计算机机房消房安全管理制度,计算机机房消防安全管理制度
- warning: ISO C forbids an empty translation unit [-pedantic]
- 麦田守望者--走出软件作坊:三五个人十来条枪 如何成为开发正规军(四十三)...
- 后缀是lnk是什么文件_ink是什么文件
- [技巧]QQ密技(一)
- 【第三方互联】11、创建支付宝(Alipay)互联应用