Android

Navigation View

Machine_웅 2018. 7. 7. 14:00
728x90
반응형

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 방식으로 네비게이션 뷰

https://namjackson.tistory.com/28

728x90
반응형