main.xml
<?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"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.example.jeon.test2.MainActivity">
<!-- 이곳이 메인이 된다. -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="start"
android:text="Hi"
android:textSize="24sp" />
</LinearLayout>
<android.support.design.widget.NavigationView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="end"
>
<!-- 이안에 담고 싶은 위젯들을 담으면된다.-->
</android.support.design.widget.NavigationView>
</android.support.v4.widget.DrawerLayout>
main.java
public class MainActivity extends AppCompatActivity {
public DrawerLayout dl;
public ActionBarDrawerToggle mToggle;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dl = (DrawerLayout)findViewById(R.id.drawer);
mToggle = new ActionBarDrawerToggle(MainActivity.this,dl,R.string.open,R.string.close);
dl.addDrawerListener(mToggle);
mToggle.syncState();
getSupportActionBar().setDisplayHomeAsUpEnabled(true); // 툴바 활성화
}
// 이걸 넣어줘야지 네이게이션 메뉴가 드로워가 활성화 된다.
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if(mToggle.onOptionsItemSelected(item)){
Toast.makeText(this, "start", Toast.LENGTH_SHORT).show();
return true;
}
// ... 에있는 항목들.
switch (item.getItemId()) {
case R.id.home:
Toast.makeText(this, "home", Toast.LENGTH_SHORT).show();
return true;
case R.id.setting:
Toast.makeText(this, "setting", Toast.LENGTH_SHORT).show();
return true;
case R.id.logout:
Toast.makeText(this, "logout", Toast.LENGTH_SHORT).show();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.nav_menu, menu);
return true;
}
}
1) Toolbar 객체 : 나중에 ToolBar를 애니메이션을 적용시켜서 좀 더 부드러운 어플리케이션을 만들 수 있습니다
2) FloatingActionButton 객체 : 우하단에 위치하고 있는 버튼, FloatingActionButton 에 관한 것
3) DrawerLayout 객체 : Drawer 기능을 이용하기 위해서 밑에 까는 레이아웃
4) ActionBarDrawerToggle 객체 : ActionBar 에서 좌상단에 위치한 버튼인데, NavigationView를 부를때와 안부를때 모양이 바뀌는 것을 하는 듯
5) NavigationView 객체 : 왼쪽에서 드래그해서 볼 수 있는 전광 View
nav_mene.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/home"
android:title="HOME"/>
<item android:id="@+id/setting"
android:title="SETTING"/>
<item android:id="@+id/logout"
android:title="LOGOUT"/>
</menu>
안드로이드 스튜디오에서 만들어주는
Drawer Layout + Navigation View
https://codechacha.com/ko/android-navigation-drawer/
안드로이드 AAC 방식으로 네비게이션 뷰
'Android' 카테고리의 다른 글
안드로이드 Please select Android SDK. 이슈 (0) | 2018.07.09 |
---|---|
navigationview 클릭이벤트 (0) | 2018.07.08 |
(스크랩) Android Firebase FCM Launch Activity 지정하기. (원하는 Activity 실행하기) (0) | 2018.06.29 |
Conflict with dependency 'com.android.support:support-annotations' in project ':app'. Resolved versions for app (26.1.0) and test app (0) | 2018.06.26 |
안드로이드 노티피 케이션 해드업 알림 (0) | 2018.06.23 |