navigationView 监听头部点击事件

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"

你可能感兴趣的:(Java,Android,安卓,java)