在DrawerLayout下为navigation Header上的控件找不到,急急急

啦啦啦啦-9527 2015-12-29 11:57:58
用android studio 创建activity的时候用的这个,在 Header上添加了一个ImageView,现在获取不到这个图片findViewById.
找了一些资料没有讲这里的。有一个说的是用
View headerView = NavigationView.getHeaderView(0);
然而getHeaderView(0)方法是红色的,找不到这个方法。
求指导啊!!!!!
...全文
469 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
TechStone 2017-08-10
  • 打赏
  • 举报
回复
我今天design包用的25.3.1都不行,最好的方法还是如1楼说的,把app:headerLayout这句话去掉,NavigationView现在提供了一个inflateHeaderView的API,直接调用这个API在参数里面写好header view的layout,它的返回值就是headerView的,然后再用headerView的findViewBy方法就可以拿到header里面的View了。
yzzs666 2016-06-21
  • 打赏
  • 举报
回复
升级一下support:design类库,升级到23.3.0就行了 例:'compile 'com.android.support:design:23.3.0'
啦啦啦啦-9527 2016-02-24
  • 打赏
  • 举报
回复
引用 1 楼 hyx0123 的回复:
我看了一下 NavigationView下面貌似都没有这个方法了 猜测你应该是想给headerView添加点击事件 我是这样解决的 在xml里面去掉app:headerLayout="@layout/xxxx" 这行代码 然后代码中在你需要添加点击事件的地方像下面这样动态添加headerView就好了 View view = LayoutInflater.from(this).inflate(R.layout.xxxx, null); navigationView.addHeaderView(view); view.findViewById(R.id.oooo).setOncickListener(this); 这样就可以对headerView中的控件添加点击事件了
是这样的。当时我可能是要放弃这个东西换了的时候,意外的发现应该这么写
hyx0123 2016-01-08
  • 打赏
  • 举报
回复
我看了一下 NavigationView下面貌似都没有这个方法了 猜测你应该是想给headerView添加点击事件 我是这样解决的 在xml里面去掉app:headerLayout="@layout/xxxx" 这行代码 然后代码中在你需要添加点击事件的地方像下面这样动态添加headerView就好了 View view = LayoutInflater.from(this).inflate(R.layout.xxxx, null); navigationView.addHeaderView(view); view.findViewById(R.id.oooo).setOncickListener(this); 这样就可以对headerView中的控件添加点击事件了

80,337

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧