navigationView使用nav_header中的imageView的点击事件的最新解决方案

NavigationView使用nav_header的点击事件的最新解决方案

1、将XML里的静态引入删除:
<android.support.design.widget.NavigationView android:id="@+id/nav_view" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:layout_gravity="start" /> 
<!--删除下面两行—>
<!--app:headerLayout="@layout/nav_header"—> 
<!--app:menu="@menu/nav_menu"—>
2、在程序中写入
//先找到侧滑栏的Id
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
//引入header和menu
navigationView.inflateHeaderView(R.layout.nav_header);
navigationView.inflateMenu(R.menu.nav_menu);
//头部设置点击事件
View headerView = navigationView.getHeaderView(0);
CircleImageView headImg = (CircleImageView)headerView.findViewById(R.id.login_user);
TextView userName = (TextView) headerView.findViewById(R.id.username);
TextView userDescription = (TextView) headerView.findViewById(R.id.mail);

headImg.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showToast("你点击了头像");
}
});
userName.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showToast("你点击了姓名");
}
});

猜你喜欢

转载自www.cnblogs.com/hu14god/p/12542907.html