좌측메뉴

김형우·2022년 1월 11일
0

android

목록 보기
9/10

1. activity_main_page.xml

1-1. 전체를 androidx.drawerlayout.widget.DrawerLayout (레이아웃)으로 덮음

1-2. tools:openDrawer="start"

1-3. android:id="@+id/drawer_layout"

2. activity_main_page.xml

    1. 의 작업 후 하단에 새 작업을 시작한다.

2-1. com.google.android.material.navigation.NavigationView

  • 네비게이션 뷰 레이아웃

2-2. android:id="@+id/navi_view"

  • 아이디 지정

2-3. android:layout_gravity="start"

  • 반드시 들어가야하는 옵션

2-4. 아직 안만들어서 비워둠

  • app:headerLayout=""
  • app:menu=""

3. res/layout/menu_header.xml

  • 레이아웃 리소스 파일 생성

3-1. RelativeLayout 으로 잡음

4. activity_main_page.xml

4-1. 만든 menu_header.xml을 activity_main_page.xml에 넣음

4-2. app:headerLayout="@layout/menu_header"

5. 싱글메뉴

res/menu/main_menu.xml
리소스파일 생성

  1. 전택된 메뉴 색깔주기

Main_Page.java

ImageView menuicon;

// Drawer menu
DrawerLayout drawerLayout;
NavigationView navigationView;

  1. @Override
    protected void onCreate(Bundle savedInstanceState)
    여기에

// Drawer Menu Hooks
drawerLayout = findViewById(R.id.drawer_layout);
navigationView = findViewById(R.id.navi_view);

// 선택되어있는상태일대 색깔 들어오게
navigationView.bringToFront();
navigationView.setNavigationItemSelectedListener(this);

2-1. this부분에서

2-2.
NavigationView.OnNavigationItemSelectedListener 이거 긁어서

제일위로 implment넣고 붙이고 알트엔터

2-3.
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
return false;
}
이거 생김

2-4.
@Override
protected void onCreate(Bundle savedInstanceState)
여기에

navigationView.setCheckedItem(R.id.nav_home);
이거 또 넣음

8.res/value/color.xml

<!-- Menu Style -->
    <style name="naviTheme">

        <!-- 메뉴 선택되었을때 -->
        <item name="colorPrimary">@color/custom_100</item>
        <!-- 메뉴 배경색 -->
        <item name="colorControlHighlight">@color/custom_200</item>

    </style>

9.테마설정 activity_main_page.xml에서

com.google.android.material.navigation.NavigationView
부분에
android:theme="@style/naviTheme"
적용


메뉴아이콘 클릭

mainpage.java

  1. // menuicon
    menuicon = findViewById(R.id.main_top_menu_icon);

  2. navigationDrawer();
    알트엔터로 오버라이드

2-1. private void navigationDrawer() 생성됨

2-2.
navigationView.bringToFront();
navigationView.setNavigationItemSelectedListener(this);

navigationView.setCheckedItem(R.id.nav_home);

위에꺼 복붙

2-3
menuicon.setOnClickListener(new View.OnClickListener()
쓰면 오버라이드

2-4

@Override
            public void onClick(View view) {
                if (drawerLayout.isDrawerVisible(GravityCompat.START))
                    drawerLayout.closeDrawer(GravityCompat.START);
                else drawerLayout.openDrawer(GravityCompat.START);

            }

메뉴아이콘 연결 -> 네비게이션 드로우 사용 오버라이드 변수설정(메소드만듦어줌)
-> 불러들임 -> 위에작업 다옮김 (위에있어도 상관없음) -> 메뉴아이콘에서 셋클릭리스너 사용 -> 열려있으면 닫고 닫혀있으면 열어라 (클릭했을때)

profile
The best

0개의 댓글