DrawerLayout NavigationView 配合起來非常簡單就能做出抽屜效果
在navigation_header 屬性中 app:headerLayout="@layout/navigation_header" 可以指定上部分的布局 app:menu="@menu/drawer" 可以設置下部分菜單
下面的菜單的點擊事件 可以 用 setNavigationItemSelectedListener 來實現
而上面的部分 沒有方法,想想也是,因為上面的部分 谷歌根本不知道你會布局什么,而下面的已經固定了。
此時,如果我希望點擊頭像產生事件,我首先要找到頭像,而 head_iv 在布局 navigation_header 中,navigation_header 又在 NavigationView 中定義了。 所以首先要取消 app:headerLayout ,在邏輯代碼中設置headview,再從headview找到head_iv,再設置點擊事件。
View headview=navigationView.inflateHeaderView(R.layout.navigation_header); ShapedImageView head_iv= (ShapedImageView) headview.findViewById(R.id.head_iv); head_iv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { showToast("head iv"); } });