Android的NavigationView获取headerLayout组件的方法

1.获取NavigationView

1
2
3
4
.......
setContentView(R.layout.activity_main);
...
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);

2.获取headerLayout

1
View headerLayout = navigationView.inflateHeaderView(R.layout.nav_header_main);

3.成功获取其中的组件

1
TextView teacher = (TextView) headerLayout.findViewById(R.id.teacher);

4.删除.activity_main.xml的app:headerLayout

1
app:headerLayout="@layout/nav_header_main"

Done!
也可以这样(这种个人没有尝试)

1
View headerView = navigationView.getHeaderView(0);

详细可以转去
https://segmentfault.com/a/1190000004151222