Tugas 1: Mendukung Orientasi Lanskap
1.1 Ubah ke GridLayoutManager
- Buat file sumber daya baru yang bernama integers.xml. Masuk ke direktori sumber daya Anda, klik kanan nama direktori nama dan pilih New > Values resource file.
- Beri nama file dengan integers.xml dan klik OK.
- Buat konstanta integer antara tag
<resources>
yang bernama “grid_column_count” dan setel sama dengan 1:<integer name="grid_column_count">1</integer>
-
Buat file sumber daya nilai lain, yang bernama integers.xml tetapi dengan karakteristik yang berbeda.
Perhatikan opsi “Available qualifiers” di dialog untuk membuat file sumber daya. Karakteristik ini disebut sebagai “resource qualifiers” dan digunakan untuk melabeli konfigurasi sumber daya untuk beragam situasi.
- Pilih Orientation dan tekan simbol >> di tengah dialog untuk mengakses qualifier ini.
- Ubah pemilih orientasi Layar ke Landscape dan perhatikan bagaimana nama direktori “values-land” otomatis berubah. Ini adalah inti qualifier sumber daya: nama direktori memberi tahu Android kapan harus menggunakan file layout spesifik. Dalam hal ini, ini terjadi saat ponsel diputar ke mode lanskap.
- Klik OK untuk membuat file layout baru.
- salin konstanta integer yang Anda buat ke dalam file sumber daya ini, tetapi ubah nilainya menjadi 2.
Anda sekarang seharusnya memiliki dua file integers.xml individual. Dalam tampilan proyek “Android” di Android Studio, ini seharusnya dikelompokkan ke dalam folder “integers.xml” yang setiap file dalamnya dilabeli dengan qualifier yang Anda pilih (“land” dalam hal ini).
1.2 Modifikasi MainActivity
-
Dalam
onCreate()
di MainActivity, dapatkan integer dari file sumber daya integers.xml:int gridColumnCount = getResources().getInteger(R.integer.grid_column_count);
Android Runtime akan memproses penentuan file integers.xml mana yang akan digunakan, bergantung pada status perangkat.
- Ubah LinearLayoutManager ke GridLayoutManager, dengan meneruskan konteks dan integer yang baru dibuat:
mRecyclerView.setLayoutManager(new GridLayoutManager(this, gridColumnCount));
- Jalankan aplikasi dan putar perangkat. Jumlah kolom berubah secara otomatis dengan orientasi perangkat.
Saat menggunakan aplikasi dalam mode lanskap, Anda akan melihat bahwa fungsionalitas gesek untuk menutup tidak lagi mudah digunakan, karena item sekarang berada dalam grid, bukan dalam daftar. Anda bisa menggunakan variabel gridColumnCount
untuk menonaktifkan tindakan gesek jika terdapat lebih dari satu kolom:
int swipeDirs;
if(gridColumnCount > 1){
swipeDirs = 0;
} else {
swipeDirs = ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT;
}
ItemTouchHelper helper = new ItemTouchHelper(new ItemTouchHelper.SimpleCallback
(ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT | ItemTouchHelper.DOWN
| ItemTouchHelper.UP, swipeDirs)
Tugas 2 : Dukung Tablet