解析Android開發(fā)優(yōu)化之:對(duì)界面UI的優(yōu)化詳解(二)
如果我們?cè)诿總€(gè)xml文件中都把相同的布局都重寫一遍,一個(gè)是代碼冗余,可讀性很差;另一個(gè)是修改起來比較麻煩,對(duì)后期的修改和維護(hù)非常不利。所以,一般情況下,我們需要把相同布局的代碼單獨(dú)寫成一個(gè)模塊,然后在用到的時(shí)候,可以通過<include /> 標(biāo)簽來重用layout的代碼。
常見的,有的應(yīng)用在最上方會(huì)有一個(gè)標(biāo)題欄。類似下圖所示。
圖 標(biāo)題欄的示例
如果項(xiàng)目中大部分Activity的布局都包含這樣的標(biāo)題欄,就可以把標(biāo)題欄的布局單獨(dú)寫成一個(gè)xml文件。 android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center" android:background="@drawable/navigator_bar_bg" xmlns:android="http://schemas.android.com/apk/res/android"> <TextView android:id="@android:id/title" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_centerVertical="true" android:gravity="center" android:hint="title" android:textAppearance="?android:attr/textAppearanceMedium" /> <ImageView android:id="@android:id/closeButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:src="@drawable/close" /> </RelativeLayout> 一般情況下,在項(xiàng)目的初期就能夠大致確定整體UI的風(fēng)格。所以早期的時(shí)候就可以做一些規(guī)劃,將通用的模塊先寫出來。 下面是可能可以抽出的共用的布局: 1)背景。有的應(yīng)用在不同的界面里會(huì)用到統(tǒng)一的背景。后期可能會(huì)經(jīng)常修改默認(rèn)背景,所以可以將背景做成一個(gè)通用模塊。 2)頭部的標(biāo)題欄。如果應(yīng)用有統(tǒng)一的頭部標(biāo)題欄,就可以抽取出來。 3)底部的導(dǎo)航欄。如果應(yīng)用有導(dǎo)航欄,而且大部分的Activity的底部導(dǎo)航欄是相同的,就可以將導(dǎo)航欄寫成一個(gè)通用模塊。 4)ListView。大部分應(yīng)用都會(huì)用到ListView展示多條數(shù)據(jù)。項(xiàng)目后期可能會(huì)經(jīng)常調(diào)整ListView的風(fēng)格,所以將ListView作為一個(gè)通用的模塊比較好。
<RelativeLayout
我們將上面的xml文件命名為“navigator_bar.xml”,其它需要標(biāo)題欄的Activity的xml布局文件就可以直接引用此文件了。
<include layout="@layout/navigator_bar" />
經(jīng)驗(yàn)分享:
相關(guān)文章
Android 3D滑動(dòng)菜單完全解析 Android實(shí)現(xiàn)推拉門式的立體特效
這篇文章主要為大家詳細(xì)介紹了Android 3D滑動(dòng)菜單,Android實(shí)現(xiàn)推拉門式的立體特效,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11Android源碼解析onResume方法中獲取不到View寬高
這篇文章主要為大家介紹了Android源碼解析onResume方法中獲取不到View寬高示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02Android使用Matrix旋轉(zhuǎn)圖片模擬碟片加載過程
這篇文章主要為大家詳細(xì)介紹了Android使用Matrix旋轉(zhuǎn)圖片模擬碟片加載過程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03Android中實(shí)現(xiàn)下載和解壓zip文件功能代碼分享
這篇文章主要介紹了Android中實(shí)現(xiàn)下載和解壓zip文件功能代碼分享,本文直接給出了實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-03-03Android中如何取消listview的點(diǎn)擊效果
這篇文章主要介紹了 Android中取消listview的點(diǎn)擊效果的實(shí)現(xiàn)方法,通過引用transparent之后會(huì)讓點(diǎn)擊效果透明化,一起通過本文學(xué)習(xí)吧2017-01-01Android仿騰訊視頻實(shí)現(xiàn)懸浮窗效果
對(duì)view比較熟悉的同學(xué)們應(yīng)該發(fā)現(xiàn)了,其實(shí)我們的懸浮窗就是一個(gè)view,我們只需要把view添加到windowManager上就可以了。那么,下面通過本文給大家分享Android仿騰訊視頻實(shí)現(xiàn)懸浮窗效果,一起看看吧2021-06-06Android啟動(dòng)APP時(shí)黑屏白屏的解決方法
這篇文章主要為大家詳細(xì)介紹了Android啟動(dòng)APP時(shí)黑屏白屏的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07Android實(shí)現(xiàn)在子線程中更新Activity中UI的方法
這篇文章主要介紹了Android實(shí)現(xiàn)在子線程中更新Activity中UI的方法,涉及Android線程與activity操作的相關(guān)技巧,需要的朋友可以參考下2016-04-04