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

首頁 > 系統 > Android > 正文

Android 屏幕橫豎切換詳解

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

Android 屏幕橫豎切換

Android 里面控制Activity的方向,只要在AndroidManifest.xml里面對應的Activity節點下加一句

android:screenOrientation="landscape"(landscape是橫屏,portrait豎屏)。

 我憑這句話混了一年,基本都可以的,但是這幾天我發現這招不是萬能的了。 

項目里面有一個橫屏播放視頻的PlayAcitivity,我和之前一樣設置了android:screenOrientation="landscape"。到這邊都沒有問題,后來加了一個需求,點擊屏幕上面的”評論”按鈕,彈出一個對話框,這個對話框我是用Activity實現的。效果是:豎屏、評論界面占據屏幕的中間一塊,周圍是半透明的。

神奇的事情出現了,評論窗口彈出后,我發現后面的播放界面居然變成了豎屏。(因為上面說過,這個對話框只暫居了大半個屏幕,周圍透明,所以可以看見后面的界面PlayAcitivity)。 

看見屏幕切換為豎屏了,我就郁悶了,我明明設置了android:screenOrientation="landscape",為什么還切換呢。

后來谷歌、百度…  也沒有找出原因來。自我理解是這樣的:雖然PlayAcitivity被遮住了,但是依然有一部分可見。而頂部窗口(對話框)是設置為android:screenOrientation="portrait"的,屏幕只有一個,肯定是根據頂部窗口的設置為準。

 Android中當屏幕橫豎屏切換時,Activity的生命周期是重新加載(說明當前的Activity給銷毀了,但又重新執行加載),怎么使屏幕橫豎屏切換時,當前的Activity不銷毀呢?

 在AndroidManifest.xml中為Activity設置configChanges屬性.

configChanges有如下選項: 

1. orientation :屏幕在縱向和橫向間旋轉;

2. keyboardHidden:鍵盤顯示或隱藏;

3.fontScale: 用戶變更了首選的字體大小 

4.locale: 用戶選擇了不同的語言設定;

5. keyboard: 鍵盤類型變更,例如手機從12鍵盤切換到全鍵盤

6. touchscreen或navigation: 鍵盤或導航方式變化,

如果缺少了keyboardHidden選項,不能防止Activity的銷毀,并且在之后提到的onConfigurationChanged事件中只能捕獲豎屏變橫屏的事件不能捕獲橫屏變豎屏。

android:onConfigurationChanged實際對應的是Activity里的onConfigurationChanged()方法。在AndroidManifest.xml中添加上述代碼的含義是表示在改變屏幕方向、彈出軟件盤和隱藏軟鍵盤時,不再去執行onCreate()方法,而是直接執行onConfigurationChanged()。如果不申明此段代碼,按照Activity的生命周期,都會去執行一次onCreate()方法,而onCreate()方法通常會在顯示之前做一些初始化工作。所以如果改變屏幕方向這樣的操作都去執行onCreate()方法,就有可能造成重復的初始化,降低程序效率是必然的了,而且更有可能因為重復的初始化而導致數據的丟失。這是需要千萬避免的。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 女性| 山阴县| 银川市| 屯门区| 新巴尔虎左旗| 溧水县| 额济纳旗| 容城县| 安陆市| 桃园县| 德兴市| 鄱阳县| 西藏| 白朗县| 福泉市| 乐昌市| 图们市| 宁津县| 浮梁县| 西丰县| 泰安市| 金湖县| 大竹县| 平山县| 南京市| 江陵县| 永胜县| 临泽县| 成安县| 和田市| 墨竹工卡县| 辽阳市| 西盟| 东山县| 厦门市| 阿城市| 黄梅县| 武山县| 嘉黎县| 敦煌市| 黎平县|