Computer >> Máy Tính >  >> Lập trình >> Android

NavigationView trong ActionBar trong Android

Trước khi đi vào ví dụ về chế độ xem Điều hướng, chúng ta nên biết về chế độ xem điều hướng. Chế độ xem điều hướng giống như một menu trượt trong HTML. Chế độ xem điều hướng được mở rộng bởi ngăn điều hướng. Hầu hết các trường hợp sử dụng của chế độ xem Điều hướng được sử dụng để chuyển hướng các hoạt động khác nhau hoặc hiển thị thông tin hồ sơ.

Ví dụ này minh họa về cách tích hợp NavigationView trong ActionBar

Bước 1 - Tạo một dự án mới trong Android Studio, đi tới Tệp ⇒ Dự án Mới và điền tất cả các chi tiết cần thiết để tạo một dự án mới.

Bước 2 - Trong khi tạo dự án, chúng ta nên chọn Hoạt động ngăn điều hướng như hình dưới đây

NavigationView trong ActionBar trong Android

Sau khi chọn hoạt động ngăn điều hướng, hãy nhấp vào nút tiếp theo để hoàn tất quá trình tạo dự án.

Bước 3 - Mở cấu trúc dự án của bạn cho thư mục bố trí. Android studio tạo bố cục khác nhau như được hiển thị bên dưới

activity_main.xml - Đây là một bố cục MainActivity. Nó sẽ tạo bố cục ngăn kéo dưới dạng bố cục mẹ và bố cục con chứa chế độ xem điều hướng như được hiển thị bên dưới

      

Trong giao diện điều hướng, nó chứa hai bố cục là Bố cục tiêu đề và bố cục menu. Bố cục tiêu đề chứa thông tin về tiêu đề của chế độ xem điều hướng và bố cục menu chứa thông tin về danh sách menu.

app_bar_main.xml - Nó là tệp bố cục như chúng ta thấy bố cục bình thường. Nhưng nó chứa thông tin về bố cục thanh ứng dụng (thanh tác vụ), bố cục trung tâm.

      

Trong bố cục trên, chúng tôi đã bao gồm bố cục content_main. nó là mainlayout nơi người dùng có thể tùy chỉnh các chế độ xem của riêng mình như được hiển thị bên dưới

     
  nav_header_main  - Đây là dạng xem tiêu đề điều hướng, nó chứa thông tin về tiêu đề điều hướng. chúng tôi đã tùy chỉnh tiêu đề điều hướng như được hiển thị bên dưới 

       

Lưu ý - chúng tôi đã thêm biểu tượng / có thể vẽ, trong khi ứng dụng của bạn đang phát triển, vui lòng thêm biểu tượng của riêng bạn.

activity_main_drawer - Đây là một bố cục menu có sẵn tại menu / activity_main_drawer.xml như hình dưới đây

        
         

Bước 4 - Thêm mã sau vào src / MainActivity.java

 nhập android.os.Bundle; nhập android.support.design.widget.FloatingActionButton; nhập android.support.design.widget.Snackbar; nhập android.view.View; nhập android.support.design.widget.NavigationView; nhập android.support.v4.view.GravityCompat; nhập android.support.v4.widget.DrawerLayout; nhập android.support.v7.app.ActionBarDrawerToggle; nhập android.support.v7.app.AppCompatActivity; nhập android.support.v7 .widget.Toolbar; import android.view.Menu; import android.view.MenuItem; public class MainActivity mở rộng AppCompatActivity triển khai NavigationView.OnNavigationItemSelectedListener {@Override được bảo vệ void onCreate (Gói đã lưuInstanceState) {super.onCreate (saveInstanceState); setContentView (R.layout.activity_main); Toolbar toolbar =(Thanh công cụ) findViewById (R.id.toolbar); setSupportActionBar (thanh công cụ); Ngăn kéo DrawerLayout =(DrawerLayout) findViewById (R.id.drawer_layout); ActionBarDrawerToggle toggle =new ActionBarDrawerToggle (cái này, ngăn kéo, thanh công cụ, R.string.navigation_drawer_open, R.string.navigation_drawer_close); ngăn kéo.addDrawerListener (chuyển đổi); toggle.syncState (); NavigationView điều hướngView =(NavigationView) findViewById (R.id.nav_view); navigationView.setNavigationItemSelectedListener (this); } @Override public void onBackPressed () {DrawerLayout Drawer =(DrawerLayout) findViewById (R.id.drawer_layout); if (ngăn kéo.isDrawerOpen (GravityCompat.START)) {ngăn kéo.closeDrawer (GravityCompat.START); } else {super.onBackPressed (); }} @Override công khai boolean onCreateOptionsMenu (Menu menu) {// Tăng menu; điều này sẽ thêm các mục vào thanh tác vụ nếu nó hiện diện. getMenuInflater (). phồng lên (R.menu.main, menu); trả về true; } @Override public boolean onOptionsItemSelected (MenuItem item) {// Xử lý các lần nhấp vào mục trên thanh tác vụ tại đây. Thanh tác vụ sẽ // tự động xử lý các lần nhấp vào nút Trang chủ / Lên, miễn là bạn chỉ định hoạt động chính trong AndroidManifest.xml. int id =item.getItemId (); // noinspection SimplifiableIfStatement if (id ==R.id.action_settings) {return true; } return super.onOptionsItemSelected (item); } @SuppressWarnings ("StatementWithEmptyBody") @Override công khai boolean onNavigationItemSelected (mục MenuItem) {// Xử lý các lần nhấp vào mục trong chế độ xem điều hướng tại đây. int id =item.getItemId (); if (id ==R.id.nav_camera) {// Xử lý hành động của 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 ngăn =(DrawerLayout) findViewById (R.id .drawer_layout); ngăn kéo.closeDrawer (GravityCompat.START); trả về true; }} 

Để đóng chế độ xem điều hướng, chúng ta phải đóng ngăn kéo như hình dưới đây

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

Để thay đổi vị trí chế độ xem điều hướng, hãy sử dụng mã sau

 ngăn kéo DrawerLayout =(DrawerLayout) findViewById (R.id.drawer_layout); ngăn kéo.closeDrawer (GravityCompat.END); 

Hãy thử chạy ứng dụng của bạn. Tôi giả sử bạn đã kết nối thiết bị Di động Android thực tế với máy tính của mình. Để chạy ứng dụng từ android studio, hãy mở một trong các tệp hoạt động của dự án của bạn và nhấp vào biểu tượng Chạy từ thanh công cụ. Chọn thiết bị di động của bạn làm tùy chọn, sau đó kiểm tra thiết bị di động sẽ hiển thị màn hình mặc định của bạn

NavigationView trong ActionBar trong Android