Android抽象布局——include爪瓜、merge 蹬跃、ViewStub

在布局優(yōu)化中,Androi的官方提到了這三種布局铆铆、蝶缀、,并介紹了這三種布局各有的優(yōu)勢(shì)薄货,下面也是簡單說一下他們的優(yōu)勢(shì)翁都,以及怎么使用,記下來權(quán)當(dāng)做筆記谅猾。

1柄慰、布局重用

標(biāo)簽?zāi)軌蛑赜貌季治募唵蔚氖褂萌缦拢?/p>

[html]view plaincopyprint?

android:orientation="vertical"

android:layout_width=”match_parent”

android:layout_height=”match_parent”

android:background="@color/app_bg"

android:gravity="center_horizontal">

android:layout_height="wrap_content"

android:text="@string/hello"

android:padding="10dp"/>

...

1)標(biāo)簽可以使用單獨(dú)的layout屬性税娜,這個(gè)也是必須使用的坐搔。

2)可以使用其他屬性。標(biāo)簽若指定了ID屬性敬矩,而你的layout也定義了ID概行,則你的layout的ID會(huì)被覆蓋,解決方案弧岳。

3)在include標(biāo)簽中所有的android:layout_*都是有效的凳忙,前提是必須要寫layout_width和layout_height兩個(gè)屬性业踏。

4)布局中可以包含兩個(gè)相同的include標(biāo)簽,引用時(shí)可以使用如下方法解決(參考):

[html]view plaincopyprint?

Viewbookmarks_container_2=findViewById(R.id.bookmarks_favourite);

bookmarks_container_2.findViewById(R.id.bookmarks_list);

2涧卵、減少視圖層級(jí)

標(biāo)簽在UI的結(jié)構(gòu)優(yōu)化中起著非常重要的作用勤家,它可以刪減多余的層級(jí),優(yōu)化UI柳恐。多用于替換FrameLayout或者當(dāng)一個(gè)布局包含另一個(gè)時(shí)伐脖,標(biāo)簽消除視圖層次結(jié)構(gòu)中多余的視圖組。例如你的主布局文件是垂直布局胎撤,引入了一個(gè)垂直布局的include晓殊,這是如果include布局使用的LinearLayout就沒意義了断凶,使用的話反而減慢你的UI表現(xiàn)伤提。這時(shí)可以使用標(biāo)簽優(yōu)化。

[html]view plaincopyprint?

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="@string/add"/>

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="@string/delete"/>

現(xiàn)在认烁,當(dāng)你添加該布局文件時(shí)(使用標(biāo)簽)肿男,系統(tǒng)忽略節(jié)點(diǎn)并且直接添加兩個(gè)Button。更多介紹可以參考《Android Layout Tricks #3: Optimize by merging

3却嗡、需要時(shí)使用

標(biāo)簽最大的優(yōu)點(diǎn)是當(dāng)你需要時(shí)才會(huì)加載舶沛,使用他并不會(huì)影響UI初始化時(shí)的性能。各種不常用的布局想進(jìn)度條窗价、顯示錯(cuò)誤消息等可以使用標(biāo)簽如庭,以減少內(nèi)存使用量,加快渲染速度撼港。是一個(gè)不可見的坪它,大小為0的View。標(biāo)簽使用如下:

[html]view plaincopyprint?

android:id="@+id/stub_import"

android:inflatedId="@+id/panel_import"

android:layout="@layout/progress_overlay"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_gravity="bottom"/>

當(dāng)你想加載布局時(shí)帝牡,可以使用下面其中一種方法:

[java]view plaincopyprint?

((ViewStub)?findViewById(R.id.stub_import)).setVisibility(View.VISIBLE);

//?or

View?importPanel?=?((ViewStub)?findViewById(R.id.stub_import)).inflate();

當(dāng)調(diào)用inflate()函數(shù)的時(shí)候往毡,ViewStub被引用的資源替代,并且返回引用的view靶溜。這樣程序可以直接得到引用的view而不用再次調(diào)用函數(shù)findViewById()來查找了开瞭。

注:ViewStub目前有個(gè)缺陷就是還不支持標(biāo)簽。


參考:http://blog.csdn.net/xyz_lmn/article/details/14524567

http://blog.csdn.net/chenlaic/article/details/6090069

http://www.tuicool.com/articles/jyyUV33

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末罩息,一起剝皮案震驚了整個(gè)濱河市嗤详,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌瓷炮,老刑警劉巖断楷,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異崭别,居然都是意外死亡冬筒,警方通過查閱死者的電腦和手機(jī)恐锣,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來舞痰,“玉大人土榴,你說我怎么就攤上這事∠炫#” “怎么了玷禽?”我有些...
    開封第一講書人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長呀打。 經(jīng)常有香客問我矢赁,道長,這世上最難降的妖魔是什么贬丛? 我笑而不...
    開封第一講書人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任撩银,我火速辦了婚禮,結(jié)果婚禮上豺憔,老公的妹妹穿的比我還像新娘额获。我一直安慰自己,他們只是感情好恭应,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開白布抄邀。 她就那樣靜靜地躺著,像睡著了一般昼榛。 火紅的嫁衣襯著肌膚如雪境肾。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,292評(píng)論 1 301
  • 那天胆屿,我揣著相機(jī)與錄音奥喻,去河邊找鬼。 笑死莺掠,一個(gè)胖子當(dāng)著我的面吹牛衫嵌,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播彻秆,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼楔绞,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了唇兑?” 一聲冷哼從身側(cè)響起酒朵,我...
    開封第一講書人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎扎附,沒想到半個(gè)月后蔫耽,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年匙铡,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了图甜。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡鳖眼,死狀恐怖黑毅,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情钦讳,我是刑警寧澤矿瘦,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站愿卒,受9級(jí)特大地震影響缚去,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜琼开,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一易结、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧稠通,春花似錦衬衬、人聲如沸买猖。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽玉控。三九已至飞主,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間高诺,已是汗流浹背碌识。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留虱而,地道東北人筏餐。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像牡拇,于是被迫代替她去往敵國和親魁瞪。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容