Andriod动态布局
1。近幾日接入一個(gè)第3方Geesee的直播視頻,碰到一個(gè)動(dòng)態(tài)布局的問(wèn)題,有感而發(fā)
? 需求:點(diǎn)擊按鈕,切換視頻View與文檔View的位置。而且文檔那個(gè)小窗口是可以全屏拖動(dòng)的,所以
??? ?沒(méi)有將兩個(gè)View寫在同一層級(jí)。
? ?
? 問(wèn)題場(chǎng)景:第3方的Demo將視頻和文檔各自寫了個(gè)Fragment,我布好局之后,發(fā)現(xiàn)切換兩者的位置
????出現(xiàn)了極大的困難。
????
????
????網(wǎng)上搜了2種方法,
????第1種方法:利用LayoutParams,RelativeLayout等設(shè)置
????一些屬性,但是要求兩個(gè)交換位置的View在同一個(gè)RelativeLayout里,當(dāng)然不行。
????第2種方法:利用Fragment的remove 、replace、add等,發(fā)現(xiàn)同一個(gè)Fragment是不能往這個(gè)
????View添加之后再往另一個(gè)View添加的,否則會(huì)出現(xiàn)Can't change container ID of Fragment ?這個(gè)
????錯(cuò)誤
????終于,還是原始的removeAllViews與addView解決了問(wèn)題。
? ? ? ? ? ????????????? ?如上面的代碼片斷,不直接將代碼插入到原有的布局中,而是先將fragment添加到中間View中
? ,再將中間View添加到原有的布局中,再將Fragment添加到中間View中。
? ? ?最后通過(guò)對(duì)中間View動(dòng)態(tài)添加和刪除就能實(shí)現(xiàn)視頻區(qū)和文檔區(qū)的位置對(duì)換
??? ? 注意一點(diǎn),將一個(gè)View重新添加到另外一個(gè)parent之前將將這個(gè)View原來(lái)的parent的子View全部
?清除,否則會(huì)出現(xiàn)??The specified child already has a parent. You must call removeView() on the child's parent first. 這個(gè)錯(cuò)誤
?
?
轉(zhuǎn)載于:https://blog.51cto.com/4259297/1850851
總結(jié)
以上是生活随笔為你收集整理的Andriod动态布局的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 六、JAVA基础--泛型
- 下一篇: (17)字符编码