Kontrol Kustom

Dengan kontrol kustom, Anda dapat menambahkan elemen UI Anda sendiri di atas tampilan navigasi. Navigation SDK secara otomatis mengubah posisi kontrol kustom Anda saat tata letak bawaan berubah.

Anda dapat menetapkan satu kontrol kustom untuk setiap posisi. Kontrol kustom dapat berupa satu elemen UI atau, jika desain Anda memerlukan lebih banyak, Anda dapat menggunakan ViewGroup dengan beberapa elemen UI.

Metode setCustomControl menyediakan posisi seperti yang ditentukan dalam enum CustomControlPosition:

  • SECONDARY_HEADER (hanya muncul dalam mode potret)
  • BOTTOM_START_BELOW
  • BOTTOM_END_BELOW

Pada gambar di bawah, Anda dapat melihat contoh setiap posisi dalam penempatan kontrol UI yang memberi tahu pengemudi lokasi penumpang.

Posisi Kontrol Kustom

Menambahkan kontrol kustom di bawah header utama

Secara default, tata letak menampilkan Kemudian panah atau panduan jalur di bawah header utama. Aplikasi Anda dapat mengganti tata letak default dengan kontrol kustom yang disetel di posisi header sekunder. Kontrol ini menggantikan konten default di atas tampilan navigasi. Jika tampilan Anda memiliki latar belakang, latar belakang tersebut akan tetap di tempatnya. Jika aplikasi Anda menghapus konten kustom, konten default akan muncul sebagai gantinya.

Posisi ini berada di bawah header peta utama, dengan tepi atas sejajar dengan tepi bawah header utama. Header sekunder default disembunyikan. Posisi ini hanya didukung dalam portrait mode. Di landscape mode, header sekunder tidak tersedia, dan tata letaknya tidak berubah.

  1. Buat Android View dengan elemen UI kustom atau ViewGroup.
  2. Meng-inflate xml atau membuat instance tampilan kustom untuk mendapatkan instance tampilan yang akan ditambahkan sebagai header sekunder.
  3. Gunakan NavigationView.setCustomControl atau NavigationFragment.setCustomControl dengan CustomControlPosition sebagai SECONDARY_header.

    Contoh di bawah ini membuat fragmen dan menambahkan kontrol kustom pada posisi header sekunder.

     mNavFragment.setCustomControl(getLayoutInflater().
       inflate(R.layout.your_custom_control, null),
          CustomControlPosition.SECONDARY_HEADER);
    

Menghapus header sekunder

Jika Anda ingin menghapus header sekunder dan kembali ke konten default, gunakan metode setCustomControl.

  • Setel tampilan ke null untuk menghapus tampilan.

    mNavFragment.setCustomControl(null, CustomControlPosition.SECONDARY_HEADER);
    

Menambahkan kontrol kustom di atas tampilan navigasi

Aplikasi Anda dapat menentukan kontrol kustom yang disejajarkan dengan tepi bawah tampilan. Saat aplikasi Anda menambahkan kontrol kustom, tombol tengahkan lagi dan logo Google bergerak ke atas untuk mengakomodasi kontrol kustom.

  1. Buat Android View dengan elemen UI atau kelompok tampilan yang ingin Anda tambahkan.
  2. Buat fragmen atau tampilan navigasi.
  3. Panggil metode setCustomControl pada tampilan atau fragmen navigasi, dan tentukan kontrol serta posisi yang akan digunakan.

Contoh berikut menunjukkan View kustom yang ditambahkan ke NavigationFragment:

  private NavigationFragment mNavFragment;
    mNavFragment = (NavigationFragment)
      getFragmentManager().findFragmentById(R.id.navigation_fragment);

    // Create the custom control view.
    MyCustomView myCustomView = new MyCustomView();

    // Add the custom control to the bottom end corner of the layout.
    mNavFragment.setCustomControl(myCustomView, CustomControlPosition.
       BOTTOM_END_BELOW);

Menghapus kontrol kustom

Jika ingin menghapus kontrol kustom, gunakan metode setCustomControl dan tentukan posisi kontrol yang ingin Anda hapus.

  • Tetapkan tampilan ke null untuk posisi tersebut.

    mNavFragment.setCustomControl(null, CustomControlPosition.BOTTOM_END_BELOW);