自定義組合控件——通用標(biāo)題欄

開發(fā)項(xiàng)目的過程中,我們會發(fā)現(xiàn),有很多頁面都需要一種同樣的布局,來做同樣的功能。例如下圖的效果,我在開發(fā)項(xiàng)目中,大部分頁面,都需要這個布局,并且都做一件事:返回前一頁。

Paste_Image.png

不會偷懶的程序員,不是好程序員。

第一種程序員:每次有新頁面需要這個布局,就復(fù)制粘貼,簡直是最勤快的笨程序員了。

第二種程序員:稍微聰明一點(diǎn),會使用<include>標(biāo)簽來引入這個布局。但是這個方法依舊不夠完美。因?yàn)檫€是要每次代碼寫onClick,如果頁面真的很多的話,我選擇狗帶。

第三種程序員:會使用自定義組合控件來幫助自己。每次只需要在xml里引入自己的控件, so easy!媽媽再也不用擔(dān)心我的代碼了!

當(dāng)然,我才不會說,這是我的進(jìn)化史!T_T。。。

自定義組合控件,說簡單也不簡單,說難也不難。(ps:我在說廢話。)
好了,開始寫一個通用標(biāo)題欄吧!
1.看圖說話,很明顯,這個組合控件,需要一個ImageView和一個TextView。有很多高手,喜歡直接用代碼寫出來。但是我頭腦簡單,選擇使用xml。我建議新手使用xml。

Paste_Image.png

2.寫好了布局,看一下有哪些地方需要動態(tài)設(shè)置的,很明顯,titleText這個TextView的值是需要我們單獨(dú)設(shè)置的,畢竟不可能每個頁面標(biāo)題一樣。于是,我們需要去attr文件里設(shè)置自定義屬性。

Paste_Image.png

3.ok!萬事俱備,只欠起飛。新建一個class文件,類名和<declare-styleable>的name名稱一樣并繼承LinearLayout。讓我描述代碼,這件事真麻煩,藍(lán)瘦香菇。還是看代碼吧T_T

Paste_Image.png

若是你看不懂,我只能說,沒關(guān)系,孩子。你的未來還很長,不著急。
若是看懂了,恭喜你,你又成長了!
xml里只需引入:

Paste_Image.png

好了,其他不用管了。點(diǎn)擊事件控件里已經(jīng)寫好,好好去聚焦其他的內(nèi)容吧。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,036評論 25 709
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,315評論 4 61
  • 01大風(fēng)下的陪伴 還在住在茅草屋的那幾年,有一天家人沒有一個人在家,我自己一個人,當(dāng)時的大院里的小朋友剛好都沒有在...
    是籽陽閱讀 313評論 0 0
  • 我只能說 欣賞照片的時候千萬別聯(lián)系我的日常 勿噴
    木子李___閱讀 120評論 0 0

友情鏈接更多精彩內(nèi)容