国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android分屏多窗口的實踐代碼

2019-12-12 04:02:16
字體:
來源:轉載
供稿:網友

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分屏多窗口的實踐代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 若尔盖县| 黔南| 工布江达县| 乃东县| 黑水县| 农安县| 杂多县| 孙吴县| 梁平县| 阳春市| 施甸县| 金川县| 梁山县| 厦门市| 长汀县| 玛纳斯县| 特克斯县| 德江县| 深州市| 蓬溪县| 饶河县| 闵行区| 鹤庆县| 长宁县| 射洪县| 宁南县| 晴隆县| 自贡市| 长武县| 乡城县| 开化县| 德钦县| 瑞安市| 成都市| 休宁县| 同心县| 普兰店市| 福贡县| 正宁县| 瑞昌市| 谢通门县|