Android分屏多窗口的實(shí)踐代碼
Android N 中推出了多窗口支持,項(xiàng)目要求適配多窗口模式,記錄一下。
1.生命周期:對(duì)于完全沒有適配多窗口的APP來說,當(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來適配多窗口UI
}
onMultiWindowModeChanged在Activity,fragment里面都有,會(huì)在多窗口模式變化的時(shí)候調(diào)用該方法。不過注意了,當(dāng)已經(jīng)是多窗口模式時(shí),進(jìn)入新頁面,并不會(huì)調(diào)用該方法。那怎么辦呢?可以用下面這個(gè)方法來判斷當(dāng)前是否是多窗口狀態(tài),最低兼容SDK版本是24:
Activity().isInMultiWindowMode()
可以用Activity的這個(gè)方法判斷。當(dāng)是多窗口時(shí)隱藏或者顯示某些布局。
3.如果要在拖動(dòng)多窗口的過程中,動(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)的過程中自動(dòng)改變。這是Android官方的一個(gè)demo。
4.在拖動(dòng)多窗口的過程中,也可以在代碼里面動(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)站的支持!
- 淺談 Android 7.0 多窗口分屏模式的實(shí)現(xiàn)
- Android Studio升級(jí)3.6 Build窗口出現(xiàn)中文亂碼問題解決方法
- Android開發(fā)實(shí)現(xiàn)模仿微信小窗口功能【Dialog對(duì)話框風(fēng)格窗口】
- Android監(jiān)聽系統(tǒng)來電并彈出提示窗口
- Android開發(fā)實(shí)現(xiàn)popupWindow彈出窗口自定義布局與位置控制方法
- Android Popupwindow彈出窗口的簡單使用方法
- Android使用Activity實(shí)現(xiàn)從底部彈出菜單或窗口的方法
- Android自定義彈出窗口PopupWindow使用技巧
- Android窗口小部件基礎(chǔ)編寫代碼實(shí)例
相關(guān)文章
Android Handler內(nèi)存泄漏原因及解決方案
這篇文章主要介紹了Android Handler內(nèi)存泄漏原因及解決方案,幫助大家更好的理解和利用Android進(jìn)行開發(fā),感興趣的朋友可以了解下2021-02-02
Android自定義View實(shí)現(xiàn)地鐵顯示牌效果
這篇文章主要為大家詳細(xì)介紹了Android自定義View實(shí)現(xiàn)地鐵顯示牌效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-11-11
深入淺析Android手機(jī)衛(wèi)士保存密碼時(shí)進(jìn)行md5加密
一般的手機(jī)沒有root權(quán)限,進(jìn)不去data/data目錄,當(dāng)手機(jī)刷機(jī)了后,擁有root權(quán)限,就可以進(jìn)入data/data目錄,查看我們保存的密碼文件,因此我們需要對(duì)存入的密碼進(jìn)行MD5加密,接下來通過本文給大家介紹Android手機(jī)衛(wèi)士保存密碼時(shí)進(jìn)行md5加密,需要的朋友一起學(xué)習(xí)吧2016-04-04
Android檢測(cè)url地址是否可達(dá)的兩種方法
今天小編就為大家分享一篇Android檢測(cè)url地址是否可達(dá)的兩種方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-01-01
Android用RecyclerView實(shí)現(xiàn)動(dòng)態(tài)添加本地圖片
本篇文章主要介紹了Android用RecyclerView實(shí)現(xiàn)動(dòng)態(tài)添加本地圖片,具有一定的參考價(jià)值,有興趣的可以了解一下2017-08-08
Android實(shí)現(xiàn)九宮格橫向左右滑動(dòng)
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)九宮格橫向左右滑動(dòng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-08-08
Android實(shí)現(xiàn)控件的縮放移動(dòng)功能
這篇文章主要介紹了android控件的縮放,移動(dòng)功能,本文圖文并茂給大家介紹的非常詳細(xì),需要的朋友可以參考下2018-01-01
Android Studio 合并module到統(tǒng)一文件夾的方法
這篇文章主要介紹了Android Studio 合并module到統(tǒng)一文件夾的方法,補(bǔ)充介紹了android studio關(guān)于同名資源文件的合并技巧,需要的朋友可以參考下2018-04-04
Android可自定義垂直循環(huán)滾動(dòng)布局
這篇文章主要為大家詳細(xì)介紹了Android可自定義垂直循環(huán)滾動(dòng)布局,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-03-03

