navigationView 監聽頭部點擊事件
最近想給一個項目實現一個點擊頭像後上傳頭像的功能,結果發現navigationView裏的頭部沒法點擊。
解決方法:
動態綁定頭部
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
View drawHeader = navigationView.inflateHeaderView(R.layout.nav_header);
CircleImageView avatar = (CircleImageView)drawHeader.findViewById(R.id.icon_image);
avatar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this,"avatar clicked!",Toast.LENGTH_SHORT).show();
}
});
此時運行代碼,會發現出現了兩個header!只有一個能點擊,真的是真假美猴王,今年下半年……開花
解決方法:
把之前在xml文件中靜態綁定的header刪掉。
就是這個:
app:headerLayout="@layout/nav_header"