NavigationView的頭部的事件監聽
現在App的UI設計中Drawerlayout+NavigationView是一個比較常用的設計了,而以前我一般只是在Navigation中的menu(即下部的item中)添加事件監聽,而今天碰到一個需要是要在header中增加事件監聽。
需求如下:點擊圖片,在底部彈出一個彈出窗口。
側邊導航欄布局:
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
app:headerLayout="@layout/nav_header_main"
app:menu="@menu/menu_nav"
/>
android:layout_width="match_parent"
android:layout_height="180dp"
android:padding="10dp"
android:background="?attr/colorPrimary">
android:layout_width="70dp"
android:layout_height="70dp"
android:id="@+id/account"
android:src="@drawable/ic_account"
android:layout_centerInParent="true" />
android:id="@+id/qianming"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerInParent="true"
android:textSize="16sp"
android:text="學好英語走遍天下"
/>
那顯然我們得要獲取到這個image的id,從而給它設置點擊事件監聽。
然而,當我用ButterKnife去綁定它的時候,直接就報錯了
也對,這個時候側邊欄還沒有打開
接下來我就想著要在側邊欄打開的情況下去獲取到這個id,怎麼監聽側邊欄是否打開呢,我嘗試了這個方法
(竊喜),在onDrawerOpened中寫入進行一波findViewById操作應該就可以了吧。
然並卵。。。
點擊頭像毫無反應。
最後,那我們就不在xml中靜態導入header了還不行嗎,我們直接在代碼中直接導入header的布局,然後再來獲取它裡面圖片的id,並為其設置事件監聽,終於KO。
此處需要刪除原先的這一行:
app:headerLayout="@layout/nav_header_main"
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
app:menu="@menu/menu_nav"
/>
onCreate()中加入下面代碼:
View drawerView = navigationView.inflateHeaderView(R.layout.nav_header_main);
CircleImageView account = (CircleImageView) drawerView.findViewById(R.id.account);
account.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
bottomPopupOption = new BottomPopupOption(TabHostActivity.this);
bottomPopupOption.setItemText("拍照","選擇相冊");
bottomPopupOption.showPopupWindow();
}
});
最終的效果圖:
更多優質內容推薦:體驗別樣旅遊感受 中公教育推出全新互聯網+北京游,零利潤體驗10天9晚帝都風情:
http://www.ujiuye.com/zt/qgsqxly/?wt.bd=zdy35845tt
有錢任性,某公司豪擲500萬幫助20左右年輕人找工作,起因是做善良的人:
http://www.ujiuye.com/zt/jyfc/?wt.bd=zdy35845tt
學安卓,免學費!50天興趣課程等你來搶!
http://www.ujiuye.com/xydt/2017/13042.html?wt.bd=zdy35845tt
※ASP.NET Core 四種釋放 IDisposable 對象的方法
※測試|只有聰明人才看得出來的6張圖, 你能看出來嗎?
TAG:IT優就業 |
※Android如何實現帶有粘性頭部的ScrollView
※Miriam Stoppard博士:撞擊頭部會導致痴呆症
※網格交易的頭部玩家,BitUniverse到底怎麼樣?
※HungerGame:幣圈交易所的頭部之爭
※印度物流哪家強?通過財務數據拆解頭部玩家BlackBuck和Rivigo
※3.19 VR掃描:Oculus Go或將於F8大會正式發布;Magic Leap專利,根據頭部位置檢測聲音
※ionic 頭部和底部
※ionic 頭部與底部
※頭部掛件廠再出大作 Sacai聯名BeatsX耳機你愛上了嗎?
※VR遊戲Arcas Path發布,只需頭部控制,玩法簡單有趣
※Nx頭部追蹤器助你「超神」,1MORE Spearhead VRX開箱測
※Nx頭部追蹤器助你「超神」,1MORE Spearhead VRX開箱測評
※VR遊戲《Arca』s Path》發布,只需頭部控制,玩法簡單有趣
※vivoNEX和OPPO FindX維修價格出爐,攝像頭部分不是最貴的!
※資訊:壽屋 MSG系列 MechaSupply 12 自定義頭部A
※不是google,更不是Tesla,這家汽車零部件廠竟佔據無人駕駛專利的頭部
※Nike Air Max 1加入今年「N7」系列的先頭部隊
※Magic Leap申請「空間音頻」專利,用頭部位置檢測聲音
※非封閉性真無線耳機,支持頭部手勢,Xperia Ear Duo上手體驗
※Magic Leap One的輸入方式有哪些?眼球追蹤、手勢控制、語音交互、6DoF控制器、頭部姿態