Android 解決類似直播界面橫豎屏切換導致界面銷毀重建的一種方案

例如一般的直播界面里面業(yè)務(wù)和SDK代碼都比較厚重,而手機直播基本都會有豎屏觀看與橫屏觀看萝风,如果不經(jīng)過特殊處理用戶在切換橫豎屏的時候就會導致Activity生命周期重走,一來回造成界面切換時有短暫閃屏紫岩,二來SDK和業(yè)務(wù)代碼有重走一次规惰,導致資源浪費和不良的用戶體驗。

還有一點涉及到連麥時泉蝌,切換橫屏重走生命周期回導致失去連麥用戶的鏈接歇万,用戶必須重新連麥才能加入進來。

如何處理以上問題呢勋陪?
有兩個出發(fā)點:
1.如何在切換橫豎屏后不重走生命周期贪磺。
2.如果不重走生命周期如何切換到對應(yīng)的橫豎屏布局

Tip:布局切換會導致界面的事件失效,并且直播控件功能失效诅愚,后面會有處理方案寒锚。

第一步

切換橫豎屏后禁止重走生命周期
在AndroidManifest.xml中的對應(yīng)Activity加入configChange屬性,并且配置android:configChanges="keyboardHidden|orientation|locale|screenSize"
如下:

 <activity
            android:name=".tencent.TICClassActivity2"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:windowSoftInputMode="stateAlwaysHidden|adjustResize" />

第二步

在Activity中重寫onConfigurationChanged方法,按照以上配置完清單文件后在切換橫豎屏時就不會重走生命周期了壕曼,并且會調(diào)用onConfigurationChanged方法苏研。

這樣又產(chǎn)生了一個新的問題,按照上面配置后橫豎屏切換后系統(tǒng)沒有自動幫我們切換layout-land文件夾中的布局腮郊,這個就需要我們自己手動來切換了摹蘑。

第三步

在Activity中重寫onConfigurationChanged方法中獲取橫豎屏事件

 @Override
    public void onConfigurationChanged(@NonNull Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {//橫屏
  
        } else {//豎屏
        }
    }

在豎屏布局中也就是res/layout對應(yīng)的activity XML中的根布局外嵌套一層FrameLayout,并且設(shè)置id.
如下:


image.png

第四步

將layout-land中對應(yīng)的橫屏布局復(fù)制到layout中,并且重命名(防止文件重復(fù))轧飞。


image.png

第五步

在橫豎屏切換事件回調(diào)中切換布局


image.png

Tip:activity_tic_class_one.xml是豎屏布局衅鹿,activity_tic_class_one_landscape.xml是橫屏布局,這兩個文件都是存在res/layout中过咬,而不是res/layout-land大渤。switchRootLayout()是處理根布局內(nèi)容替換,并且將直播控件轉(zhuǎn)移到另一個根布局上掸绞,添加懂啊另個容器之前需要先移除當前控件的父容器關(guān)聯(lián)泵三。還有一點很重要,因為切換了根布局衔掸,所有旋轉(zhuǎn)屏幕之前針對View的事件都失效了烫幕,需要重新綁定事件.

總結(jié):該思路的核心思想是先取消橫豎屏重建Activity的機制,再手動切換橫豎屏對應(yīng)的布局敞映,并且將直播View摳出來放到新的layout對應(yīng)位置中较曼,這樣就避免了重新初始化直播SDK流程了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末振愿,一起剝皮案震驚了整個濱河市捷犹,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌冕末,老刑警劉巖萍歉,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異栓霜,居然都是意外死亡翠桦,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進店門胳蛮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來销凑,“玉大人,你說我怎么就攤上這事仅炊《酚祝” “怎么了?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵抚垄,是天一觀的道長蜕窿。 經(jīng)常有香客問我谋逻,道長,這世上最難降的妖魔是什么桐经? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任毁兆,我火速辦了婚禮,結(jié)果婚禮上阴挣,老公的妹妹穿的比我還像新娘气堕。我一直安慰自己,他們只是感情好畔咧,可當我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布茎芭。 她就那樣靜靜地躺著,像睡著了一般誓沸。 火紅的嫁衣襯著肌膚如雪梅桩。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天拜隧,我揣著相機與錄音宿百,去河邊找鬼。 笑死虹蓄,一個胖子當著我的面吹牛犀呼,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播薇组,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼坐儿!你這毒婦竟也來了律胀?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤貌矿,失蹤者是張志新(化名)和其女友劉穎炭菌,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體逛漫,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡黑低,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了酌毡。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片克握。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖枷踏,靈堂內(nèi)的尸體忽然破棺而出菩暗,到底是詐尸還是另有隱情,我是刑警寧澤旭蠕,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布停团,位于F島的核電站旷坦,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏佑稠。R本人自食惡果不足惜秒梅,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望舌胶。 院中可真熱鬧番电,春花似錦、人聲如沸辆琅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽婉烟。三九已至娩井,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間似袁,已是汗流浹背洞辣。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留昙衅,地道東北人扬霜。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像而涉,于是被迫代替她去往敵國和親著瓶。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,786評論 2 345