簡(jiǎn)介
項(xiàng)目中突然遇到很多頁(yè)面需要根據(jù)業(yè)務(wù)類(lèi)型來(lái)展示不同菜單項(xiàng),在網(wǎng)上找了很多解決方案,實(shí)現(xiàn)過(guò)于麻煩,下面介紹如何優(yōu)雅的實(shí)現(xiàn)動(dòng)態(tài)配置。
toolbar 擴(kuò)展
/**
* 項(xiàng)目名稱(chēng):kanche-mars-android
* 類(lèi)描述:toolbar擴(kuò)展
* 創(chuàng)建人:zzy
* 創(chuàng)建時(shí)間:2017/9/20 上午11:14
* 修改人:
* 修改時(shí)間:2017/9/20 上午11:14
* 修改備注:
*@version
*/
fun Toolbar.addMenu(vararg name : String){
? ? ? name.map{
? ? ? ? ? ? menu.add(it).let{
? ? ? ? ? ? ? id = name.hashCode()
? ? ? ? ? ? ? ? //todo 可以繼續(xù)擴(kuò)展展 是否可點(diǎn)擊,是否顯示等等
? ? ? ? ? ? }
? ? ? }
}
使用
toolbar.addMenu("1","2")//這里可以根據(jù)業(yè)務(wù)類(lèi)型添加不同item
toolbar.setOnMenuItemClickListener { item->
? ? ? ? ? when(item.title){
? ? ? ? ? ? ? ? "1"->
? ? ? ? ? ? ? ? ? ? ? safeToast("menu_confirm")
? ? ? ? ? ? ? ? "2"->
? ? ? ? ? ? ? ? ? ? ? safeToast("distribution")
? ? ? ? ? }
? ? ? ? ? true
}
總結(jié)
這樣用是不是比配置xml要簡(jiǎn)單,而且可以根據(jù)業(yè)務(wù)類(lèi)型動(dòng)態(tài)配置不同的MenuItem。