BÀI 53 - DRAWERLAY TRONG LẬP TRÌNH ANDROID

  • Để dễ hình dung thì DrawerLayout là một màn hình nhỏ hiện ra khi bấm vào một biểu tưởng menu trên thanh toolbar của ứng dụng. Nó sẽ cho phép người dùng tương tác trực quan hơn với ứng dụng.

  • Để sử dụng thì trong xml gọi thuộc tính drawerLayout và toolbar chứa menu cho toàn màn hình như sau:

// Thường sẽ nằm trong cặp thẻ của constraintLayout, LinearLayout...


<androidx.drawerlayout.widget.DrawerLayout

android:id="@+id/drawerMenuShopping"

android:layout_width="match_parent"

android:layout_height="match_parent"

app:layout_constraintBottom_toBottomOf="parent"

app:layout_constraintEnd_toEndOf="parent"

app:layout_constraintHorizontal_bias="0.0"

app:layout_constraintStart_toStartOf="parent"

app:layout_constraintTop_toTopOf="parent"

app:layout_constraintVertical_bias="0.0">


<androidx.appcompat.widget.Toolbar // Sử dụng toolbar của thư viện androidx nhé!

android:id="@+id/toolbarShopping"

app:title="@string/cua_hang"

app:titleTextColor="#FFFF"

android:background="#2962FF"

android:layout_width="match_parent"

android:layout_height="?attr/actionBarSize">

</androidx.appcompat.widget.Toolbar>



// Trong này có thể thêm bất cứ thẻ này để tạo giao diện khác cho màn hình


</androidx.drawerlayout.widget.DrawerLayout>

  • Cái màn hình nhỏ hiện ra nó có tên là NavigationView. Nó sẽ hiển thị các item dưới dạng listView vì vậy bạn chèn 2 thuộc tính này vào DrawerLayout nữa nhé!

<androidx.drawerlayout.widget.DrawerLayout>


// Trong này có thể thêm bất cứ thẻ này để tạo giao diện khác cho màn hình


<com.google.android.material.navigation.NavigationView

android:id="@+id/navigationShopping"

android:layout_gravity="start" // Để cái màn nhỏ đó ẩn bên ngoài màn hình chính

android:layout_width="match_parent"

android:layout_height="match_parent">

<ListView

android:id="@+id/listViewNavigationShop"

android:layout_width="match_parent"

android:layout_height="wrap_content">

</ListView>

</com.google.android.material.navigation.NavigationView>


</>

  • Bây giờ, trong java cũng ánh xạ các thuộc tính trên.

  • Sau đó, code như này

setSupportActionBar(toolbarShop);

getSupportActionBar().setDisplayHomeAsUpEnabled(true); // hiện icon menu trên toolbar

toolbarShop.setNavigationIcon(android.R.drawable.ic_menu_sort_by_size); // đặt icon cho cái nút

toolbarShop.setNavigationOnClickListener(v -> dwMenuShop.openDrawer(GravityCompat.START)); // Khi click vào cái nút thì cái màn hình nhỏ đó được kéo ra màn hình chính

  • Đổ dữ liệu cho listview trong navigationView

  1. Tạo class chứa khuôn cho dữ liệu

  2. Tạo adapter để đổ dữ liệu vào listView

  3. Gọi mảng và adapter vào màn hình chính.

  4. Add các phần tử cho mảng.

  5. Gán mảng vào adapter.

  6. Cập nhật lại dữ liệu cho adapter để hiển thị ra listView.