[Amdroid]怎么获取侧滑菜单头布局里面的控件

__椎名真白 2018-04-03 12:57:11
开始运行的时候还行,和预期差不多。↓

后来想设置一下默认显示的界面。然后就是打开侧滑菜单就崩溃。↓

有值,但是设置不上,debug了一下发现控件是空的。↓

我是这么关联控件的。。。

然后。。。就是怎么设置都是空。。。是不是我关联控件的姿势不对。。
大概就是进入onCreate方法就先初始化控件,然后设置了标题栏的返回键为导航图标,点击后滑出侧滑菜单。在标题栏的点击事件onOptionsItemSelected方法中,点击了导航按钮,就初始化侧滑菜单头布局里面控件的显示内容。。有啥不对么。为啥就是获取不到。。
...全文
526 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
灬拾柒 2020-01-03
  • 打赏
  • 举报
回复
大佬大佬 我猜也应该是先找到抽屉的view在去改它的子控件,只是没见过这样的先例,完美解决谢谢大佬
JohnLiu_ 2018-04-04
  • 打赏
  • 举报
回复
先获取HeaderView, navigationView.getHeaderView(0).findViewById()大概是这样
__椎名真白 2018-04-04
  • 打赏
  • 举报
回复
引用 4 楼 m940034240 的回复:
先获取HeaderView, navigationView.getHeaderView(0).findViewById()大概是这样

真·大佬。完美解决。

运行。

终于能设置了。不过这个状态栏盖住了侧滑菜单,很难受。查了下DrawerLayout使用系统状态栏的方法。都不生效。7.0的系统。不存在不支持的情况吧。。
看的云里雾里的。要是能盖住系统状态栏就完美了。

__椎名真白 2018-04-03
  • 打赏
  • 举报
回复
大佬们。帮帮忙~~~~
布局文件:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">

......

<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/nav_menu_bg"
android:layout_gravity="start"
app:headerLayout="@layout/nav_header"
app:menu="@menu/nav_menu" />

</android.support.v4.widget.DrawerLayout>

nav_header布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/nav_header"
android:layout_width="match_parent"
android:layout_height="@dimen/nav_header_height"
android:background="@drawable/nav_header_bg"
android:padding="@dimen/nav_header_padding">

<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/nav_user_image"
android:layout_width="@dimen/nav_user_image_size"
android:layout_height="@dimen/nav_user_image_size"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:src="@drawable/nav_user_image_1" />

<TextView
android:id="@+id/nav_user_motto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:text="@string/nav_user_info"
android:textColor="#FFF"
android:textSize="@dimen/nav_user_info_text_size" />

<TextView
android:id="@+id/nav_user_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@id/nav_user_motto"
android:layout_marginBottom="5dp"
android:text="@string/nav_user_name"
android:textColor="#FFF"
android:textSize="@dimen/nav_user_name_text_size" />

</RelativeLayout>

试过各种方法了。

就是报错,就是获取不到控件:

愁。。。大佬们给点建议。。上课去了。。。。。



__椎名真白 2018-04-03
  • 打赏
  • 举报
回复
引用 1 楼 x443137254 的回复:
要是你那几个view写在主布局的xml里就可以这么获取对象,一般是写在哪就在哪获取
material design的设计风格,头布局和菜单布局都是写在外面,然后主布局中引用。头布局是一个叫header的,我试过获取这个布局,然后用header.findViewById的方法获取,但是不起作用,反而会报错。不让我这么使用。不知道该怎么获取了。
x443137254 2018-04-03
  • 打赏
  • 举报
回复
要是你那几个view写在主布局的xml里就可以这么获取对象,一般是写在哪就在哪获取

80,350

社区成员

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

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