Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Android

NavigationView ใน ActionBar ใน Android


ก่อนเข้าสู่ตัวอย่างมุมมองการนำทาง เราควรทราบเกี่ยวกับมุมมองการนำทางก่อน มุมมองการนำทางก็เหมือนกับเมนูเลื่อนใน HTML มุมมองการนำทางถูกขยายโดยลิ้นชักการนำทาง กรณีการใช้งานส่วนใหญ่ของมุมมองการนำทางใช้เพื่อเปลี่ยนเส้นทางกิจกรรมต่างๆ หรือแสดงข้อมูลโปรไฟล์

ตัวอย่างนี้สาธิตเกี่ยวกับวิธีการรวม NavigationView ใน ActionBar

ขั้นตอนที่ 1 − สร้างโครงการใหม่ใน Android Studio ไปที่ไฟล์ ⇒ โครงการใหม่และกรอกรายละเอียดที่จำเป็นทั้งหมดเพื่อสร้างโครงการใหม่

ขั้นที่ 2 − ในขณะที่สร้างโครงการ เราควรเลือกกิจกรรมลิ้นชักการนำทางดังที่แสดงด้านล่าง

NavigationView ใน ActionBar ใน Android

หลังจากเลือกกิจกรรมลิ้นชักการนำทางแล้ว ให้คลิกปุ่มถัดไปเพื่อสิ้นสุดการสร้างโครงการ

ขั้นตอนที่ 3 − เปิดโครงสร้างโปรเจ็กต์ของคุณสำหรับโฟลเดอร์เลย์เอาต์ Android studio สร้างเลย์เอาต์ที่แตกต่างกันดังแสดงด้านล่าง

activity_main.xml − มันเป็นเลย์เอาต์ MainActivity มันจะสร้างรูปแบบลิ้นชักเป็นเค้าโครงหลักและเค้าโครงย่อยประกอบด้วยมุมมองการนำทางดังแสดงด้านล่าง

 <รวมเลย์เอาต์ ="@layout/app_bar_main" android:layout_width ="match_parent" android:layout_height ="match_parent" /> 

ในมุมมองการนำทางจะมีสองเค้าโครงเป็นเค้าโครงส่วนหัวและเค้าโครงเมนู เค้าโครงส่วนหัวประกอบด้วยข้อมูลเกี่ยวกับส่วนหัวของมุมมองการนำทางและเค้าโครงเมนูมีข้อมูลเกี่ยวกับรายการเมนู

app_bar_main.xml − เป็นไฟล์เลย์เอาต์ตามที่เราเห็นเลย์เอาต์ปกติ แต่มีข้อมูลเกี่ยวกับเลย์เอาต์ของแถบแอป (แถบการทำงาน) เลย์เอาต์ตรงกลาง

<รุ่นก่อนหน้า> <รวมเลย์เอาต์ ="@layout/content_main" />

ในเค้าโครงด้านบน เราได้รวมเค้าโครง content_main เป็น mainlayout ที่ผู้ใช้สามารถกำหนดมุมมองเองได้ตามที่แสดงด้านล่าง

 

nav_header_main − เป็นมุมมองส่วนหัวของการนำทาง ซึ่งมีข้อมูลเกี่ยวกับส่วนหัวการนำทาง เราได้ปรับแต่งส่วนหัวการนำทางตามที่แสดงด้านล่าง

   

หมายเหตุ − เราได้เพิ่ม drawable/logo ในขณะที่คุณกำลังพัฒนาแอปพลิเคชัน โปรดเพิ่มโลโก้ของคุณเอง

activity_main_drawer − เป็นเลย์เอาต์ของเมนูซึ่งมีอยู่ที่ menu/activity_main_drawer.xml ดังแสดงด้านล่าง

   <รายการ android:id ="@+id/nav_gallery" android:icon ="@drawable/ic_menu_gallery" android:title ="คลังภาพ" /> <รายการ android:id ="@ +id/nav_slideshow" android:icon ="@drawable/ic_menu_slideshow" android:title ="สไลด์โชว์" /> <รายการ android:id ="@+id/nav_manage" android:icon ="@drawable/ic_menu_manage" android:title ="เครื่องมือ" /> 
 <รายการ android:title ="สื่อสาร"> <เมนู> <รายการ android:id ="@+id/nav_share" android:icon ="@drawable/ic_menu_share" android:title =" แบ่งปัน" /> <รายการ android:id ="@+id/nav_send" android:icon ="@drawable/ic_menu_send" android:title ="ส่ง" />   

ขั้นตอนที่ 4 − เพิ่มรหัสต่อไปนี้ใน src/MainActivity.java

<ก่อนหน้า>นำเข้า android.os.Bundle;นำเข้า android.support.design.widget.FloatingActionButton;นำเข้า android.support.design.widget.Snackbar;นำเข้า android.view.View;นำเข้า android.support.design.widget.NavigationView; นำเข้า android.support.v4.view.GravityCompat นำเข้า android.support.v4.widget.DrawerLayout นำเข้า android.support.v7.app.ActionBarDrawerToggle นำเข้า android.support.v7.app.AppCompatActivity นำเข้า android.support.v7 .widget.Toolbar นำเข้า android.view.Menu นำเข้า android.view.MenuItem คลาสสาธารณะ MainActivity ขยาย AppCompatActivity ใช้ NavigationView.OnNavigationItemSelectedListener { @Override ป้องกันโมฆะ onCreate (Bundle savedInstanceState) { super.onCreate (savedInstanceState); setContentView(R.layout.activity_main); แถบเครื่องมือแถบเครื่องมือ =(แถบเครื่องมือ) findViewById(R.id.toolbar); setSupportActionBar (แถบเครื่องมือ); DrawerLayout ลิ้นชัก =(DrawerLayout) findViewById (R.id.drawer_layout); สลับ ActionBarDrawerToggle =ActionBarDrawerToggle ใหม่ (นี้, ลิ้นชัก, แถบเครื่องมือ, R.string.navigation_drawer_open, R.string.navigation_drawer_close); Drawer.addDrawerListener (สลับ); toggle.syncState(); NavigationView navigationView =(NavigationView) findViewById (R.id.nav_view); navigationView.setNavigationItemSelectedListener (นี้); } @แทนที่โมฆะสาธารณะ onBackPressed () { DrawerLayout drawer =(DrawerLayout) findViewById (R.id.drawer_layout); ถ้า (drawer.isDrawerOpen (GravityCompat.START)) { Drawer.closeDrawer (GravityCompat.START); } อื่น ๆ { super.onBackPressed(); } } @Override บูลีนสาธารณะ onCreateOptionsMenu (เมนูเมนู) {// ขยายเมนู; สิ่งนี้จะเพิ่มรายการลงในแถบการดำเนินการหากมีอยู่ getMenuInflater().inflate(R.menu.main เมนู); คืนค่าจริง; } @Override บูลีนสาธารณะ onOptionsItemSelected (รายการเมนู) { // จัดการรายการแถบการดำเนินการคลิกที่นี่ แถบการทำงานจะ // จัดการการคลิกปุ่มหน้าแรก/ขึ้นโดยอัตโนมัติ ตราบใดที่คุณระบุกิจกรรมหลักใน AndroidManifest.xml int id =item.getItemId(); // noinspection SimplifiableIfStatement if (id ==R.id.action_settings) { คืนค่าจริง; } ส่งคืน super.onOptionsItemSelected(รายการ); } @SuppressWarnings("StatementWithEmptyBody") @Override public boolean onNavigationItemSelected(MenuItem item) { // จัดการการนำทางดูรายการคลิกที่นี่ int id =item.getItemId(); if (id ==R.id.nav_camera) { // จัดการการทำงานของกล้อง } else if (id ==R.id.nav_gallery) { } else if (id ==R.id.nav_slideshow) { } else if ( id ==R.id.nav_manage) { } else if (id ==R.id.nav_share) { } else if (id ==R.id.nav_send) { } DrawerLayout ลิ้นชัก =(DrawerLayout) findViewById (R.id .drawer_layout); drawer.closeDrawer (GravityCompat.START); คืนค่าจริง; }}

หากต้องการปิดมุมมองการนำทาง เราต้องปิด Drawer ตามภาพด้านล่าง

if (drawer.isDrawerOpen(GravityCompat.START)) { Drawer.closeDrawer(GravityCompat.START);}

ในการเปลี่ยนตำแหน่งการดูการนำทาง ให้ใช้รหัสต่อไปนี้

DrawerLayout drawer =(DrawerLayout) findViewById(R.id.drawer_layout);drawer.closeDrawer(GravityCompat.END);

มาลองเรียกใช้แอปพลิเคชันของคุณกัน ฉันคิดว่าคุณได้เชื่อมต่ออุปกรณ์มือถือ Android จริงกับคอมพิวเตอร์ของคุณ ในการรันแอพจาก android studio ให้เปิดไฟล์กิจกรรมของโปรเจ็กต์แล้วคลิกไอคอน Run จากแถบเครื่องมือ เลือกอุปกรณ์มือถือของคุณเป็นตัวเลือก จากนั้นตรวจสอบอุปกรณ์มือถือของคุณซึ่งจะแสดงหน้าจอเริ่มต้นของคุณ

NavigationView ใน ActionBar ใน Android