Kontrol Kustom

Dengan menggunakan kontrol kustom, Anda dapat menambahkan elemen UI Anda sendiri di atas tampilan navigasi. Navigation SDK secara otomatis memosisikan ulang kontrol kustom Anda saat perubahan tata letak bawaan.

Anda dapat menetapkan satu kontrol kustom untuk setiap posisi. Kontrol kustom dapat berupa satu elemen UI atau, jika desain Anda memerlukan lebih banyak elemen, 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 tetap di tempat. Saat aplikasi Anda menghapus konten kustom, konten default akan muncul di tempatnya.

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 di portrait mode. Di landscape mode, header sekunder tidak tersedia, dan tata letak tidak berubah.

  1. Buat Android View dengan elemen UI kustom atau ViewGroup.
  2. Inflate xml atau buat instance tampilan kustom untuk mendapatkan instance tampilan yang akan ditambahkan sebagai header sekunder.
  3. Gunakan NavigationView.setCustomControl atau NavigationFragment.setCustomControl dengan CustomControlPosition sebagai SECONDARY_ Ada.

    Contoh di bawah membuat fragmen dan menambahkan kontrol kustom di 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 sejajar dengan tepi bawah tampilan. Saat aplikasi Anda menambahkan kontrol kustom, tombol tengahkan kembali dan logo Google akan 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 Anda ingin menghapus kontrol kustom, gunakan metode setCustomControl dan tentukan posisi kontrol yang ingin dihapus.

  • Setel tampilan ke null untuk posisi tersebut.

    mNavFragment.setCustomControl(null, CustomControlPosition.BOTTOM_END_BELOW);