Android分屏多窗口的实践代码

 更新时间:2017年01月13日 14:38:21   作者:zhang555  
这篇文章主要介绍了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配置,例如:

<activity
  android:name="com.android.multiwindowplayground.activities.MinimumSizeActivity"
  android:launchMode="singleInstance"
  android:taskAffinity="">
  <layout
  android:defaultHeight="500dp"
  android:defaultWidth="750dp"
  android:gravity="top|end"
  android:minWidth="500dp"
  android:minHeight="500dp" />
 </activity>

然后在activity的布局文件里面,设置线性布局的layout_gravity和权重:

<LinearLayout android:id="@+id/layout"
 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">
 <ScrollView
 android:id="@+id/scrollview"
 android:layout_width="match_parent"
 android:layout_height="0dp"
 android:layout_gravity="top"
 android:layout_weight="0.75">
 <TextView
  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" />
 </ScrollView>
 <include
 layout="@layout/logging"
 android:layout_width="match_parent"
 android:layout_height="0dp"
 android:layout_gravity="bottom"
 android:layout_weight="0.25" />
</LinearLayout>

就会在拖动的过程中自动改变。这是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分屏多窗口的实践代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • Android Handler内存泄漏原因及解决方案

    Android Handler内存泄漏原因及解决方案

    这篇文章主要介绍了Android Handler内存泄漏原因及解决方案,帮助大家更好的理解和利用Android进行开发,感兴趣的朋友可以了解下
    2021-02-02
  • Android自定义View实现地铁显示牌效果

    Android自定义View实现地铁显示牌效果

    这篇文章主要为大家详细介绍了Android自定义View实现地铁显示牌效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-11-11
  • Kotlin中的一些技巧与迂回操作分享

    Kotlin中的一些技巧与迂回操作分享

    这篇文章主要给大家介绍了关于Kotlin中的一些技巧与迂回操作的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用kotlin具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-07-07
  • 深入浅析Android手机卫士保存密码时进行md5加密

    深入浅析Android手机卫士保存密码时进行md5加密

    一般的手机没有root权限,进不去data/data目录,当手机刷机了后,拥有root权限,就可以进入data/data目录,查看我们保存的密码文件,因此我们需要对存入的密码进行MD5加密,接下来通过本文给大家介绍Android手机卫士保存密码时进行md5加密,需要的朋友一起学习吧
    2016-04-04
  • Android检测url地址是否可达的两种方法

    Android检测url地址是否可达的两种方法

    今天小编就为大家分享一篇Android检测url地址是否可达的两种方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • Android用RecyclerView实现动态添加本地图片

    Android用RecyclerView实现动态添加本地图片

    本篇文章主要介绍了Android用RecyclerView实现动态添加本地图片,具有一定的参考价值,有兴趣的可以了解一下
    2017-08-08
  • Android实现九宫格横向左右滑动

    Android实现九宫格横向左右滑动

    这篇文章主要为大家详细介绍了Android实现九宫格横向左右滑动,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • Android实现控件的缩放移动功能

    Android实现控件的缩放移动功能

    这篇文章主要介绍了android控件的缩放,移动功能,本文图文并茂给大家介绍的非常详细,需要的朋友可以参考下
    2018-01-01
  • Android Studio 合并module到统一文件夹的方法

    Android Studio 合并module到统一文件夹的方法

    这篇文章主要介绍了Android Studio 合并module到统一文件夹的方法,补充介绍了android studio关于同名资源文件的合并技巧,需要的朋友可以参考下
    2018-04-04
  • Android可自定义垂直循环滚动布局

    Android可自定义垂直循环滚动布局

    这篇文章主要为大家详细介绍了Android可自定义垂直循环滚动布局,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03

最新评论