건프의 소소한 개발이야기

[안드로이드] Navigation View Header View 관리하기 본문

개발 이야기/안드로이드 이야기

[안드로이드] Navigation View Header View 관리하기

건강한프로그래머 2016. 5. 7. 17:28

안녕하세요, 건프입니다.


앞에서 Navigation View 를 이용해서 프로젝트를 만들어 보았습니다.

NavigationView 에서는 두개의 Layout을 얹어서 사용하는데,

menu 사용은 이미 앞에서 다루었고,


이번에 알아보는 것은 nav_header_view 의 값을 바꾸는 내용을 알아봅니다.


1.  getHeaderView 함수를 이용하는 방법이 있습니다.


NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);

//View nav_header_view = navigationView.inflateHeaderView(R.layout.nav_header_main);
View nav_header_view = navigationView.getHeaderView(0);

TextView nav_header_id_text = (TextView) nav_header_view.findViewById(R.id.nav_header_id_text);
nav_header_id_text.setText(app.user_id+" "+app.user_pw);

위와 같이 접근하여, TextView 에 접근하면, 값을 바꿀 수 있습니다.


이렇게 말이죠.


2. 두번째방법은 inflateHeaderView 를 이용해서 레이아웃을 inflate 하는 방법이 있습니다.

NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);

View nav_header_view = navigationView.inflateHeaderView(R.layout.nav_header_main);
//View nav_header_view = navigationView.getHeaderView(0);

TextView nav_header_id_text = (TextView) nav_header_view.findViewById(R.id.nav_header_id_text);
nav_header_id_text.setText(app.user_id+" "+app.user_pw);

이것의 결과는 이렇게 나옵니다.



차이를 아시겠나요?

그렇습니다. 2번 방법으로 만들때는, 원래 navigation view 에서 header_view 를 빼주어야 합니다. 안그러면 이렇게 두개가 들어가게 되는군요!


도움이 되었길 바랍니다

Happy Coding :)



Comments