1 page.title=Navigasi dengan Back dan Up 2 page.tags="navigation","activity","task","up navigation","back navigation" 3 page.image=/design/media/navigation_between_siblings_gmail.png 4 @jd:body 5 6 <a class="notice-developers" href="{@docRoot}training/implementing-navigation/index.html"> 7 <div> 8 <h3>Dokumen Pengembang</h3> 9 <p>Mengimplementasikan Navigasi yang Efektif</p> 10 </div> 11 </a> 12 13 <p itemprop="description">Navigasi yang konsisten merupakan komponen penting dari keseluruhan pengalaman pengguna. Hampir tidak ada yang lebih membingungkan 14 pengguna selain navigasi dasar yang perilakunya tidak konsisten dan tidak sesuai harapan. Android 3.0 15 memperkenalkan perubahan besar dalam perilaku navigasi global. Mengikuti dengan saksama 16 panduan untuk Back dan Up akan membuat navigasi aplikasi Anda dapat diprediksi dan dapat diandalkan pengguna.</p> 17 <p>Android 2.3 dan versi sebelumnya mengandalkan tombol <em>Back</em> sistem untuk mendukung navigasi dalam 18 aplikasi. Dengan diperkenalkannya action-bar dalam Android 3.0, mekanisme navigasi kedua muncul: 19 tombol <em>Up</em>, yang terdiri dari ikon aplikasi dan tanda panah yang menunjuk ke kiri.</p> 20 21 <img src="{@docRoot}design/media/navigation_with_back_and_up.png"> 22 23 <h2 id="up-vs-back">Up vs. Back</h2> 24 25 <p>Tombol Up digunakan untuk berpindah dalam aplikasi berdasarkan hubungan hierarki 26 antar layar. Misalnya, jika layar A menampilkan daftar item, dan memilih sebuah item akan membuka 27 layar B (yang menampilkan item tersebut secara lebih detail), maka layar B akan menawarkan tombol Up untuk 28 kembali ke layar A.</p> 29 <p>Jika suatu layar merupakan yang teratas dalam aplikasi (yaitu layar Home aplikasi), maka tidak perlu menampilkan tombol 30 Up.</p> 31 32 <p>Tombol Back sistem digunakan untuk berpindah, dalam urutan kronologis terbalik, melalui riwayat 33 layar yang baru dibuka oleh pengguna. Biasanya ini berdasarkan hubungan sementara 34 antar layar, dan bukan hierarki aplikasi.</p> 35 36 <p>Bila layar yang dilihat sebelumnya juga merupakan induk hierarki dari layar yang sekarang, menekan tombol 37 Back akan sama hasilnya dengan menekan tombol Up—ini adalah kejadian 38 biasa. Akan tetapi, berbeda dengan tombol Up, yang memastikan pengguna tetap berada dalam aplikasi Anda, tombol Back 39 dapat mengembalikan pengguna ke layar Home, atau bahkan ke aplikasi lain.</p> 40 41 <img src="{@docRoot}design/media/navigation_up_vs_back_gmail.png"> 42 43 <p>Tombol Back juga mendukung beberapa perilaku yang tidak terkait langsung dengan navigasi antar layar: 44 </p> 45 <ul> 46 <li>Menghilangkan jendela mengambang (dialog, popup)</li> 47 <li>Menghilangkan action-bar kontekstual, dan menghapus sorotan dari item yang dipilih</li> 48 <li>Menyembunyikan keyboard di layar (IME)</li> 49 </ul> 50 <h2 id="within-app">Navigasi Dalam Aplikasi Anda</h2> 51 52 <h4>Berpindah ke layar yang memiliki beberapa titik masuk</h4> 53 <p>Kadang-kadang layar tidak memiliki posisi pasti dalam hierarki aplikasi, dan bisa dimasuki 54 dari berbagai titik masuk—seperti layar pengaturan yang dapat dibuka dari layar lain 55 dalam aplikasi Anda. Dalam hal ini, tombol Up akan memilih untuk kembali ke layar pengarah, yang cara kerjanya 56 sama dengan tombol Back.</p> 57 <h4>Mengubah tampilan dalam layar</h4> 58 <p>Mengubah opsi tampilan untuk layar tidak mengubah perilaku Up atau Back: layar tetap 59 berada di tempat yang sama dalam hierarki aplikasi, dan tidak dibuat riwayat navigasi yang baru.</p> 60 <p>Contoh perubahan tampilan tersebut adalah:</p> 61 <ul> 62 <li>Mengganti tampilan menggunakan tab dan/atau geser kiri dan kanan</li> 63 <li>Mengubah tampilan menggunakan tarik-turun (alias tab turun)</li> 64 <li>Memfilter daftar</li> 65 <li>Menyortir daftar</li> 66 <li>Mengubah karakteristik tampilan (seperti zoom)</li> 67 </ul> 68 <h4>Berpindah antar layar yang seinduk</h4> 69 <p>Bila aplikasi Anda mendukung navigasi dari daftar item ke tampilan detail salah satu item tersebut, aplikasi 70 juga sering diharapkan mendukung navigasi langsung dari item itu ke item sebelumnya atau 71 sesudahnya dalam daftar. Misalnya, dalam Gmail, begitu mudah untuk bergeser ke kiri atau kanan dari sebuah percakapan 72 untuk melihat percakapan yang lebih baru atau lebih lama dalam Inbox yang sama. Sama seperti saat mengubah tampilan dalam layar, navigasi 73 ini tidak mengubah perilaku Up atau Back.</p> 74 75 <img src="{@docRoot}design/media/navigation_between_siblings_gmail.png"> 76 77 <p>Akan tetapi, pengecualian khusus terhadap hal ini terjadi saat menjelajah di antara tampilan detail terkait yang tidak disatukan 78 oleh daftar yang merujuknya—misalnya, saat menjelajahi Play Store di antara aplikasi dari 79 pengembang yang sama, atau album dari artis yang sama. Dalam hal ini, mengikuti setiap tautan akan membuat 80 riwayat, sehingga tombol Back akan menyusuri setiap layar yang dilihat sebelumnya. Tombol Up akan terus 81 melewatkan semua layar terkait ini dan berpindah ke layar kontainer yang terakhir dilihat.</p> 82 83 <img src="{@docRoot}design/media/navigation_between_siblings_market1.png"> 84 85 <p>Anda dapat menjadikan perilaku tombol Up lebih cerdas lagi berdasarkan pengetahuan Anda tentang tampilan 86 detail. Dengan memperluas contoh Play Store dari atas, bayangkan pengguna yang telah berpindah dari Buku 87 terakhir yang dilihat ke detail untuk adaptasi Film. Dalam hal itu, tombol Up dapat kembali ke kontainer 88 (Movies) yang sebelumnya belum dilalui pengguna.</p> 89 90 <img src="{@docRoot}design/media/navigation_between_siblings_market2.png"> 91 92 <h2 id="into-your-app">Navigasi ke Aplikasi Anda melalui Widget dan Pemberitahuan Layar Home</h2> 93 94 <p>Anda bisa menggunakan widget atau pemberitahuan layar Home untuk membantu pengguna berpindah langsung ke layar 95 jauh dalam hierarki aplikasi Anda. Misalnya, widget Inbox dan pemberitahuan pesan baru di Gmail dapat 96 melewatkan layar Inbox, dan membawa pengguna langsung ke tampilan percakapan.</p> 97 98 <p>Untuk kedua kasus ini, tangani tombol Up sebagai berikut:</p> 99 100 <ul> 101 <li><em>Jika layar tujuan biasanya dicapai dari satu layar tertentu dalam aplikasi 102 Anda</em>, tombol Up akan mengarahkannya ke layar itu.</li> 103 <li><em>Jika tidak</em>, tombol Up akan mengarahkan ke layar teratas ("Home") dari aplikasi Anda.</li> 104 </ul> 105 106 <p>Dalam hal tombol Back, Anda harus membuat navigasi lebih bisa diprediksi dengan menyisipkan ke dalam 107 back-stack tugas path navigasi naik lengkap menuju layar teratas aplikasi. Ini memungkinkan pengguna 108 yang lupa cara masuk ke aplikasi Anda untuk berpindah ke layar teratas aplikasi sebelum 109 keluar.</p> 110 111 <p>Sebagai contoh, widget layar Home di Gmail memiliki tombol untuk menuju langsung ke layar 112 Compose. Tombol Up atau Back dari layar Compose akan membawa pengguna ke Inbox, dan dari sana tombol 113 Back berlanjut ke Home.</p> 114 115 <img src="{@docRoot}design/media/navigation_from_outside_back.png"> 116 117 <h4>Pemberitahuan tidak langsung</h4> 118 119 <p>Jika aplikasi Anda perlu menampilkan informasi tentang beberapa kejadian sekaligus, aplikasi dapat menggunakan 120 pemberitahuan tunggal yang mengarahkan pengguna ke layar antara. Layar ini merangkum semua 121 kejadian tersebut, dan menyediakan path bagi pengguna untuk menjelajah ke dalam aplikasi. Pemberitahuan dengan gaya seperti ini 122 disebut <em>pemberitahuan tidak langsung</em>.</p> 123 124 <p>Berbeda dengan pemberitahuan standar (langsung), menekan tombol Back dari 125 layar antara pada pemberitahuan tidak langsung akan mengembalikan pengguna ke titik pemicu pemberitahuan tersebut—tidak ada 126 layar tambahan yang disisipkan ke dalam back-stack. Setelah pengguna melanjutkan ke dalam aplikasi dari 127 layar antara, tombol Up dan Back akan berperilaku seperti pada pemberitahuan standar, sebagaimana dijelaskan di atas: 128 menyusuri ke dalam aplikasi dan bukan kembali ke layar antara.</p> 129 130 <p>Misalnya, anggaplah seorang pengguna di Gmail menerima pemberitahuan tidak langsung dari Kalender. Menyentuh 131 pemberitahuan ini akan membuka layar antara, yang menampilkan pengingat beberapa macam 132 kejadian. Menyentuh Back dari layar antara akan mengembalikan pengguna ke Gmail. Menyentuh kejadian 133 tertentu akan membawa pengguna dari layar antara ke aplikasi Kalender lengkap untuk menampilkan detail 134 kejadian. Dari detail kejadian, tombol Up dan Back akan mengarahkan ke tampilan Kalender tingkat atas.</p> 135 136 <img src="{@docRoot}design/media/navigation_indirect_notification.png"> 137 138 <h4>Pemberitahuan pop-up</h4> 139 140 <p><em>Pemberitahuan pop-up</em> akan melewatkan laci pemberitahuan, bukan muncul secara langsung di 141 hadapan pengguna. Ini jarang digunakan, dan <strong>harus dicadangkan untuk peristiwa yang memerlukan respons tepat waktu 142 dan diperlukan interupsi dari konteks pengguna</strong>. Misalnya, 143 Talk menggunakan gaya ini untuk memberi tahu pengguna tentang ajakan dari teman untuk bergabung dalam chatting video, karena 144 ajakan ini akan kedaluwarsa secara otomatis setelah beberapa detik.</p> 145 146 <p>Dalam hal perilaku navigasi, pemberitahuan pop-up sangat mirip perilaku pemberitahuan 147 tidak langsung pada layar antara. Tombol Back akan menghilangkan pemberitahuan pop-up. Jika pengguna berpindah 148 dari pop-up ke aplikasi yang memberi tahu, tombol Up dan Back akan mengikuti aturan pemberitahuan standar, 149 berpindah dalam aplikasi.</p> 150 151 <img src="{@docRoot}design/media/navigation_popup_notification.png"> 152 153 <h2 id="between-apps">Navigasi Antar Aplikasi</h2> 154 155 <p>Salah satu kekuatan dasar sistem Android adalah kemampuan aplikasi untuk saling 156 mengaktifkan, sehingga pengguna dapat berpindah langsung dari satu aplikasi ke aplikasi lainnya. Misalnya, sebuah 157 aplikasi yang perlu mengambil foto dapat mengaktifkan aplikasi Kamera, yang akan mengembalikan foto 158 ke aplikasi perujuk. Ini sangat menguntungkan pengembang, yang bisa dengan mudah memanfaatkan 159 kode dari aplikasi lain, maupun pengguna, yang menikmati pengalaman konsisten untuk tindakan yang biasa 160 dilakukan.</p> 161 162 <p>Untuk memahami navigasi antar aplikasi, maka perlu memahami perilaku kerangka kerja Android 163 yang akan dibahas di bawah ini.</p> 164 165 <h4>Aktivitas, tugas, dan intent</h4> 166 167 <p>Dalam Android, <strong>aktivitas</strong> adalah komponen aplikasi yang mendefinisikan layar 168 informasi dan semua tindakan terkait yang dapat dilakukan pengguna. Aplikasi Anda adalah kumpulan 169 aktivitas, yang terdiri dari aktivitas yang Anda buat dan aktivitas yang Anda gunakan ulang dari aplikasi lain.</p> 170 171 <p><strong>Tugas</strong> adalah urutan aktivitas yang diikuti pengguna untuk mencapai tujuan. 172 Tugas tunggal dapat memanfaatkan aktivitas dari satu aplikasi saja, atau dapat memanfaatkan aktivitas dari sejumlah 173 aplikasi berbeda.</p> 174 175 <p><strong>Intent</strong> adalah mekanisme bagi satu aplikasi untuk memberi isyarat minta bantuan 176 aplikasi lain dalam menjalankan suatu tindakan. Aktivitas aplikasi dapat menunjukkan intent 177 apa saja yang dapat diresponsnya. Untuk intent umum seperti "Share", pengguna mungkin telah menginstal beberapa aplikasi 178 yang dapat memenuhi permintaan itu.</p> 179 180 <h4>Contoh: berpindah antar aplikasi untuk mendukung berbagi</h4> 181 182 <p>Untuk memahami cara kerja sama aktivitas, tugas, dan intent, perhatikan bagaimana sebuah aplikasi memungkinkan pengguna 183 untuk berbagi konten dengan menggunakan aplikasi lain. Misalnya, membuka aplikasi Play Store dari Home akan memulai 184 Task A baru (lihat gambar di bawah). Setelah menyusuri Play Store dan menyentuh buku yang dipromosikan 185 untuk melihat detailnya, pengguna tetap berada dalam tugas yang sama, memperluasnya dengan menambahkan aktivitas. Memicu 186 tindakan Share akan memberi tahu pengguna dengan dialog berisi daftar aktivitas (dari aplikasi berbeda) 187 yang telah terdaftar untuk menangani intent Share.</p> 188 189 <img src="{@docRoot}design/media/navigation_between_apps_inward.png"> 190 191 <p>Bila pengguna memilih untuk berbagi melalui Gmail, aktivitas penulisan di Gmail akan ditambahkan sebagai kelanjutan dari 192 Task A—tidak ada tugas baru yang dibuat. Jika Gmail sedang menjalankan tugasnya di latar belakang, maka 193 tidak akan terpengaruh.</p> 194 195 <p>Dari aktivitas penulisan, mengirim pesan atau menyentuh tombol Back akan mengembalikan pengguna ke 196 aktivitas detail buku tersebut. Penyentuhan tombol Back berikutnya akan terus mengarahkan kembali melalui Play 197 Store, sampai akhirnya tiba di Home.</p> 198 199 <img src="{@docRoot}design/media/navigation_between_apps_back.png"> 200 201 <p>Akan tetapi, dengan menyentuh tombol Up dari aktivitas penulisan, pengguna menunjukkan keinginan untuk tetap berada di 202 Gmail. Aktivitas daftar percakapan Gmail muncul, Task B yang baru akan dibuat untuk itu. Tugas baru 203 selalu terkait ke Home, maka menyentuh tombol Back dari daftar percakapan akan mengembalikan ke sana.</p> 204 205 <img src="{@docRoot}design/media/navigation_between_apps_up.png"> 206 207 <p>Task A tetap berjalan di latar belakang, dan pengguna nanti dapat kembali ke sana (misalnya, melalui layar 208 Recents). Jika Gmail sedang menjalankan tugasnya di latar belakang, maka itu akan digantikan 209 dengan Task B—konteks sebelumnya akan diabaikan demi tujuan baru pengguna.</p> 210 211 <p>Jika register aplikasi Anda menangani intent dengan aktivitas yang jauh di dalam hierarki aplikasi, 212 lihat <a href="#into-your-app">Navigasi Aplikasi Anda melalui Widget Layar Home dan 213 Pemberitahuan</a> untuk panduan mengenai cara menetapkan navigasi Up.</p> 214