NavigationView头部点击监听事件

navigationView中view的id在Activity中是无法直接获取到的。
调用findviewbyid会报空指针异常的错误。
此时需要用下面这种写法间接获取view

 NavigationView view = (NavigationView) findViewById(R.id.nav_view);
 View headerLayout = view.inflateHeaderView(R.layout.nav_header);
 CircleImageView imageView =  headerLayout.findViewById(R.id.icon_image);
 imageView.setOnClickListener(this);

@Override
    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.icon_image:
                Toast.makeText(MainActivity.this,"点击登录",Toast.LENGTH_SHORT).show();
                break;
        }
    }

注意!!由于已经动态添加了,所以xml中下面这句必须删掉,不然就会出现两个头部的情况,如图所示。

app:headerLayout="@layout/nav_header_main"

在这里插入图片描述

发布了68 篇原创文章 · 获赞 148 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/qq_43274298/article/details/103961654
今日推荐