? ? ? ?小弟在開發(fā)android的時候,對于自帶的標題欄有深刻的印象弧关,一個字盅安,丑,我壓根就看不上世囊,丑就算了别瞭,改動性還很低,也就放出一些小改動的方法株憾,然而蝙寨,這并不能滿足那些屌炸天的產品的需求,所以需要丟棄自帶的標題欄嗤瞎,通過其他途徑墙歪,去整一個。話說贝奇,其實自己封裝的才是最好的虹菲,為什么這么說呢?
? ? ? ? 因為掉瞳,自己去封裝毕源,你想讓它方,它還能圓陕习?自己去封裝的話创千,考慮要全面柿冲,復用性要強鲤孵,拓展性也要強蜘腌,維護起來比較容易必盖。這個時候拌牲,你或許也會有這樣的體會俱饿,別人封裝的,或者第三方的塌忽,局限性都是有的拍埠,這個時候,就不滿足你的需求了土居,這應該就是傳說中的契約編程吧枣购,遵守規(guī)定的規(guī)則去使用,還是很愉快的擦耀。
? ? ?總結棉圈,當你遇到一些變態(tài)的需求,之前封裝的不滿足的情況眷蜓,這個時候分瘾,就需要自己去設定規(guī)則,去封裝了吁系。不知不覺扯這么多德召。。汽纤。
? ? ? ?好了上岗,今天的主題是 封裝標題欄,對于辯題藍蕴坪,普通的肴掷,簡單粗暴的,最讓人容易接受的標題頁面辞嗡,應該是分左捆等、中、右续室,左邊的一般是返回按鈕栋烤,中間是標題文字,右邊是頁面拓展用的挺狰,比如跳其他頁面明郭。
封裝標題欄,適用大多數(shù)需求丰泊,對于左邊的圖片薯定,我設置的是默認的返回圖標,但也可以替換其他的瞳购,下面是我所提供的一些需要傳遞的屬性和方法參考:
屬性:
isshowLeftBackIcon:是否需要顯示左邊的圖片
leftImage:左邊的圖片(默認是返回鍵的圖標)
isChange:是否替換左邊的圖片
centerText:中間的標題
rightText:右邊的文字
rightImage:右邊的圖片
backgroundColor:標題欄的背景色(不傳的話话侄,默認背景)
方法:
leftPress:左邊的點擊事件(不傳的話,默認是返回是上個頁面)
rightpress:右邊的點擊事件(不傳的話,無響應年堆,無默認)
接下來是處理標題左部分代碼:
//默認展示
//_pressBackButton 是默認的左邊點擊事件
如圖1:左邊的返回按鈕是可以控制顯示與否吞杭,點擊事件,如果沒有傳遞变丧,那就是默認的點擊事件芽狗,圖片顯示,如果沒有傳遞要顯示的圖片痒蓬,默認顯示返回鍵圖片童擎。
圖2:這是右邊文字相關,如果沒傳rightpress攻晒,那就是null顾复,無影響。
圖3:右邊圖片相關代碼鲁捏,如果rightImage為null捕透,那就無右邊圖片。
圖4:適配了ios碴萧,據我所知乙嘀,要有20的距離,相當于狀態(tài)欄的高度吧破喻,不設置虎谢,會與狀態(tài)欄重疊,這是整個標題欄的組合曹质。
到這里婴噩,就結束了,好吧羽德,我在把樣式也貼出來吧几莽。
樣式:
conststyles = StyleSheet.create({
? containerText: {
? ? ?flex: 1,
? ? ?alignItems: 'center',
? ? ?justifyContent: 'center',
? ? ?flexDirection: 'row',
? ? ?height: 44,
},
leftImage: {
width: 44,
height: 44,
},
rightImage: {
width: 30,
height: 30,
},
titleText: {
fontSize: 18,
color: Dimens.color_text_33,
},
rightTxt: {
fontSize: 15,
color: Dimens.color_text_33,
},
rightGreyTxt: {
fontSize: 15,
color: Dimens.color_text_99,
},
TouchableOpacityLeftText: {
position: 'absolute',
left: 0,
top: 8,
bottom: 8,
justifyContent: 'center',
},
TouchableOpacityRightText: {
position: 'absolute',
right: 15,
top: 8,
bottom: 8,
justifyContent: 'center',
},
TouchableOpacityRightImgview: {
position: 'absolute',
right: 0,
top: 8,
bottom: 8,
justifyContent: 'center',
}
好了,到這里就結束了宅静,來看下效果圖:
以上是效果圖章蚣,還有的沒截出來,大家自己去嘗試吧姨夹,就到這纤垂。
? ? ? 認真看的朋友肯定能按照上面的實現(xiàn)出來,自己動手豐衣足食磷账,也希望廣大程序員改掉粘貼復制的習慣峭沦,快速成長起來。
? ? ? 之后會把文件的下載地址發(fā)出來~
? ? ? 代碼地址:https://github.com/niyige/justCoder/blob/master/src/view/titleBar.js