前面地基基本構(gòu)建完成,接下來(lái)肯定要開(kāi)始布局咯,所以咱今天要介紹的就是xml布局需要用到的控件BoxInsetLayout。
在phone開(kāi)發(fā)的時(shí)候,常用組件一般都是RelativeLayout,LineaLayout,F(xiàn)rameLayout等作為父控件,這些控件直接在手表中由于邊緣的問(wèn)題導(dǎo)致布局并不是你想要的那樣。例如我在布局中放入三個(gè)控件:
我在布局中放置了三個(gè)控件,但是很奇葩 運(yùn)行的結(jié)果居然是這樣???
居然只顯示了按鈕,其他兩個(gè)textView沒(méi)顯示?咋回事?所以這種時(shí)候就我就去查看文檔后發(fā)現(xiàn)了BoxInsetLayout。
BoxInsetLayout其實(shí)也是繼承與FrameLayout,但是它通過(guò)計(jì)算后兼容了手表,目前市場(chǎng)上的手表就有兩種風(fēng)格,方形,圓形,我自己的設(shè)備moto360屬于圓形,后面我會(huì)提到怎么去布局兼容。
布局改成BoxInsetLayout后運(yùn)行程序
運(yùn)行結(jié)果后發(fā)現(xiàn)居然還是和上面的一樣,一樣不顯示其他兩個(gè)TextView,這怎么回事?
通過(guò)api查詢(xún)?cè)瓉?lái)必須在BoxInsetLayout的第一層子元素上必須加入屬性app:layout_box="all"才能完美顯示出內(nèi)容來(lái)
app:layout_box="all"確保所有子元素顯示在可見(jiàn)區(qū)域內(nèi)。
然后在Run就搞定了
是不是很洋氣?所以就可以盡情去布局自己想要的內(nèi)容了。
上面說(shuō)過(guò)手表分為方形和圓形,那怎么去自動(dòng)適配對(duì)應(yīng)的布局呢?那就下次再說(shuō)咯,因?yàn)槲依Я恕M戆玻?/p>
總結(jié):android wear有自己一套UI體系,只需要通過(guò)官方文檔說(shuō)明以及親自實(shí)踐,很快就能得到你想要的東西。最后說(shuō)一句:實(shí)踐是唯一的真理,其他都是扯犢子。