从品牌网站建设到网络营销策划,从策略到执行的一站式服务
现在App的UI设计中Drawerlayout+NavigationView是一个比较常用的设计了,而以前我一般只是在Navigation中的menu(即下部的item中)添加事件监听,而今天碰到一个需要是要在header中增加事件监听。
创新互联公司是一家专注于成都网站设计、网站制作、外贸营销网站建设与策划设计,阜新网站建设哪家好?创新互联公司做网站,专注于网站建设十载,网设计领域的专业建站公司;建站业务涵盖:阜新等地区。阜新做网站价格咨询:18980820575
需求如下:点击图片,在底部弹出一个弹出窗口。
侧边导航栏布局:
那显然我们得要获取到这个p_w_picpath的id,从而给它设置点击事件监听。
然而,当我用ButterKnife去绑定它的时候,直接就报错了
也对,这个时候侧边栏还没有打开
接下来我就想着要在侧边栏打开的情况下去获取到这个id,怎么监听侧边栏是否打开呢,我尝试了这个方法
(窃喜),在onDrawerOpened中写入进行一波findViewById操作应该就可以了吧。
然并卵。。。
点击头像毫无反应。
最后,那我们就不在xml中静态导入header了还不行吗,我们直接在代码中直接导入header的布局,然后再来获取它里面图片的id,并为其设置事件监听,终于KO。
此处需要删除原先的这一行:
app:headerLayout="@layout/nav_header_main"
onCreate()中加入下面代码:
View drawerView = navigationView.inflateHeaderView(R.layout.nav_header_main); CircleImageView account = (CircleImageView) drawerView.findViewById(R.id.account); account.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { bottomPopupOption = new BottomPopupOption(TabHostActivity.this); bottomPopupOption.setItemText("拍照","选择相册"); bottomPopupOption.showPopupWindow(); } });
最终的效果图:
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图