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
Tạo class chứa khuôn cho dữ liệu
Tạo adapter để đổ dữ liệu vào listView
Gọi mảng và adapter vào màn hình chính.
Add các phần tử cho mảng.
Gán mảng vào adapter.
Cập nhật lại dữ liệu cho adapter để hiển thị ra listView.