亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Android分屏多窗口的實(shí)踐代碼

 更新時(shí)間:2017年01月13日 14:38:21   作者:zhang555  
這篇文章主要介紹了Android分屏多窗口的實(shí)踐代碼,需要的朋友可以參考下

Android N 中推出了多窗口支持,項(xiàng)目要求適配多窗口模式,記錄一下。

1.生命周期:對(duì)于完全沒有適配多窗口的APP來(lái)說(shuō),當(dāng)啟用多窗口模式或者拖動(dòng)窗口時(shí),會(huì)出現(xiàn)Activity銷毀重新加載的現(xiàn)象。 解決方法:在manifest文件里面給activity加上下面一行屬性

android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation"

2.當(dāng)啟用多窗口模式時(shí),可能有改變?cè)璘I的需求,這時(shí)可以在代碼里面修改:

 @Override
 public void onMultiWindowModeChanged(boolean isInMultiWindowMode) {
 super.onMultiWindowModeChanged(isInMultiWindowMode);
 //在此處根據(jù)isInMultiWindowMode來(lái)適配多窗口UI
 }

onMultiWindowModeChanged在Activity,fragment里面都有,會(huì)在多窗口模式變化的時(shí)候調(diào)用該方法。不過(guò)注意了,當(dāng)已經(jīng)是多窗口模式時(shí),進(jìn)入新頁(yè)面,并不會(huì)調(diào)用該方法。那怎么辦呢?可以用下面這個(gè)方法來(lái)判斷當(dāng)前是否是多窗口狀態(tài),最低兼容SDK版本是24:

Activity().isInMultiWindowMode()

可以用Activity的這個(gè)方法判斷。當(dāng)是多窗口時(shí)隱藏或者顯示某些布局。

3.如果要在拖動(dòng)多窗口的過(guò)程中,動(dòng)態(tài)改變布局,可以在manifest文件里面對(duì)相應(yīng)的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的布局文件里面,設(shè)置線性布局的layout_gravity和權(quán)重:

<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>

就會(huì)在拖動(dòng)的過(guò)程中自動(dòng)改變。這是Android官方的一個(gè)demo。

4.在拖動(dòng)多窗口的過(guò)程中,也可以在代碼里面動(dòng)態(tài)設(shè)置,會(huì)調(diào)用onConfigurationChanged方法,在Configuration newConfig參數(shù)中有很多信息,就有當(dāng)前應(yīng)用的寬高信息。

@Override
 public void onConfigurationChanged(Configuration newConfig) {
 super.onConfigurationChanged(newConfig);
 int screenWidthDp=newConfig.screenWidthDp;
 int screenHeightDp=newConfig.screenHeightDp;
 //根據(jù)寬高動(dòng)態(tài)改變布局
 }

最后推薦:Android官方文檔

以上所述是小編給大家介紹的Android分屏多窗口的實(shí)踐代碼,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

最新評(píng)論