blob: a3d6003dd4169835a6aa7b793413b9c287c1f8f0 [file] [log] [blame]
page.titleiu hướng bng Quay li và Lên trên
page.tags="navigation","activity","task","up navigation","back navigation"
page.image=/design/media/navigation_between_siblings_gmail.png
@jd:body
<a class="notice-developers" href="{@docRoot}training/implementing-navigation/index.html">
<div>
<h3>Tài liu cho Nhà phát trin</h3>
<p>Trin khai Điu hướng Hiu quả</p>
</div>
</a>
<p itemprop="description"iu hướng nht quán là mt thành phn thiết yếu trong tri nghim người dùng nói chung. Mt vài điu nh bé li khiến
người dùng khó chu hơn so vi điu hướng cơ bn chính là hành x không nht quán và không như k vng. Android 3.0
đã gii thiu nhng thay đổi đáng k v hành vi điu hướng toàn cc. Tuân th k lưỡng các hướng dn
v Quay li và Lên trên s giúp vic điu hướng trên ng dng ca bn tr nên d đoán và đáng tin cy cho người dùng ca bn.</p>
<p>Phiên bn Android 2.3 và mi hơn da vào nút <em>Quay li</em> ca h thng để h tr điu hướng trong mt
ng dng. Vi vic gii thiu thanh hành động trong Android 3.0, mt cơ chế điu hướng th hai đã xut hin:
nút <em>Lên trên</em>, bao gồm biểu tượng ứng dụng và dấu nháy lùi trái.</p>
<img src="{@docRoot}design/media/navigation_with_back_and_up.png">
<h2 id="up-vs-back">Lên trên so vi Quay li</h2>
<p>Nút Lên trên được s dng để điu hướng bên trong mt ng dng da trên mi quan h th bc
gia các màn hình. Ví dụ, nếu màn hình A hin th mt danh sách các mc và vic chn mt mc s dn đến
màn hình B (trình bày chi tiết hơn v mc đó), khi đó B s đưa ra nút Lên trên để
quay li màn hình A.</p>
<p>Nếu mt màn hình đang trên cùng trong mt ng dng (c th là trang ch ca ng dng), thì nó s xut hin nút
Lên trên.</p>
<p>Nút Quay li ca h thng được s dng để điu hướng ngược theo th t thi gian, qua lch s các màn hình
mà người dùng mi thao tác qua. Nó thường được da trên mi quan h thi gian
gia các màn hình thay vì th bc ca ng dng.</p>
<p>Khi màn hình xem trước đó cũng đồng thi là màn hình m theo th bc ca màn hình hin ti, nhn nút
Quay li s có cùng kết qu như khi nhn nút Lên trên&mdashiu này thường hay
xy ra. Tuy nhiên, không như nút Lên trên đảm bo người dùng vn còn trong ng dng ca bn,
nút Quay li có th tr người dùng v màn hình Trang ch hoc thm chí sang mt ng dng khác.</p>
<img src="{@docRoot}design/media/navigation_up_vs_back_gmail.png">
<p>Nút Quay li cũng h tr mt vài hành vi không trc tiếp gn vi điu hướng gia các màn hình:
</p>
<ul>
<li>B qua ca s ni (hp thoi, ca s bt lên)</li>
<li>B qua thanh hành động ng cnh và b tô sáng khi mc đã chn</li>
<li>n bàn phím trên màn hình (IME)</li>
</ul>
<h2 id="within-app"iu hướng trong ng dng ca Bn</h2>
<h4>Điu hướng ti màn hình vi nhiu đim bt đầu</h4>
<p>Đôi khi mt màn hình không ch có mt v trí c định trong th bc ca ng dng và bn có th truy cp nó
t nhiu đim bt đầu&mdash;ví d như màn hình cài đặt có th được truy cp t bt c màn hình
nào khác trong ng dng ca bn. Trong trường hp này, nút Lên trên s chn quay li màn hình đã chuyn đến, có tác dng
ging như Quay li.</p>
<h4>Thay đổi dng xem bên trong mt màn hình</h4>
<p>Thay đổi tùy chn dng xem cho mt màn hình không làm thay đổi hành vi Lên trên hay Quay li: màn hình vn
cùng mt ch trong th bc ca ng dng và không to thêm lch s điu hướng mi nào.</p>
<p>Ví d v thay đổi dng xem gm:</p>
<ul>
<li>Chuyn dng xem bng tab và/hoc trượt nhanh trái phi</li>
<li>Chuyn dng xem bng danh sách th xung (còn gi là tab thu gn)</li>
<li>Lc mt danh sách</li>
<li>Sp xếp mt danh sách</li>
<li>Thay đổi đặc tính hin th (như thu phóng)</li>
</ul>
<h4>Điu hướng gia các màn hình anh em</h4>
<p>Khi ng dng ca bn h tr điu hướng t mt danh mc ti mt dng xem chi tiết ca mt trong nhng mc đó, thường
nó ưu tiên h tr điu hướng theo hướng t mc đó ti mt mc khác phía trước hoc
phía sau nó trong danh sách. Ví dụ, trong Gmail, bn có th d dàng trượt nhanh sang trái hoc phi t mt hi thoi
để xem hi thoi mi hơn hoc cũ hơn trong cùng Hp thư đến. Như khi thay đổi dng xem trong mt màn hình,
điu hướng đó không làm thay đổi hành vi Lên trên hoc Quay li.</p>
<img src="{@docRoot}design/media/navigation_between_siblings_gmail.png">
<p>Tuy nhiên, có mt trường hp ngoi l đáng chú ý đó là khi duyt gia các dng xem chi tiết có liên quan, không
ràng buc vi nhau bi danh sách chuyn đến&mdash;ví d như khi duyt trong Play Store gia các ng dng t
cùng mt nhà phát trin hoc gia các album bi cùng mt ngh sĩ. Trong các trường hp này, truy cp vào tng liên kết không to ra
lch sử, khiến nút Quay li đi qua tng màn hình được xem trước đó. Thao tác Lên trên s tiếp tc
b qua nhng màn hình liên quan này và điu hướng ti màn hình b cha được xem gn đây nht.</p>
<img src="{@docRoot}design/media/navigation_between_siblings_market1.png">
<p>Bn có kh năng thiết kế để hành vi Lên trên thông minh hơn da trên hiu biết ca mình v dng xem
chi tiết. Suy rng t ví d v Play Store bên trên, tưởng tượng người dùng đã điu hướng t
Cun sách xem gn nht ti chi tiết chuyn th Phim. Trong trường hp đó, thao tác Lên trên có th tr v mt b cha
(Phim) mà trước đó người dùng chưa điu hướng qua.</p>
<img src="{@docRoot}design/media/navigation_between_siblings_market2.png">
<h2 id="into-your-app"iu hướng ti ng dng ca Bn thông qua Widget và Thông báo trên Màn hình Trang chủ</h2>
<p>Bn có th s dng widget hoc thông báo trên màn hình Trang ch để giúp người dùng ca mình điu hướng trc tiếp ti màn hình
nm sâu trong th bc ng dng ca bn. Ví dụ, widget Hp thư đến ca Gmail và thông báo thư mi có th
va b qua màn hình Hp thư đến, va đưa người dùng trc tiếp ti dng xem hi thoi.</p>
<p>Trong c hai trường hp này, hãy điu khin nút Lên trên như sau:</p>
<ul>
<li><em>Nếu màn hình đích thường được truy cp t mt màn hình c th trong ng dng
ca bn</em>, thao tác Lên trên sẽ điều hướng tới màn hình đó.</li>
<li><em>Nếu không</em>, thao tác Lên trên sẽ điều hướng tới màn hình trên cùng ("Trang chủ") của ứng dụng của bạn.</li>
</ul>
<p>Trong trường hp nút Quay li, bn nên thiết kế để vic điu hướng d đoán hơn bng cách chèn vào ngăn xếp
ca tác v toàn b đường dn điu hướng lên trên ti màn hình trên cùng ca ng dng. Làm vy s cho phép nhng người dùng nào
quên cách h vào ng dng ca bn s điu hướng ti màn hình trên cùng ca ng dng trước khi
thoát.</p>
<p>Ví dụ, widget màn hình Trang ch ca Gmail có mt nút để đi trc tiếp vào màn hình
son email ca nó. Lên hoc Quay li t màn hình son thư s đưa người dùng ti Hp thư đến, và t đó
nút Quay li tiếp tc đưa v Trang chủ.</p>
<img src="{@docRoot}design/media/navigation_from_outside_back.png">
<h4>Thông báo gián tiếp</h4>
<p>Khi ng dng ca bn cn trình bày thông tin v nhiu s kin đồng thi, nó có th s dng
thông báo duy nht để chuyn hướng người dùng ti mt màn hình xen kẽ. Màn hình này tng hp nhng s kin
này và cung cp đường dn cho người dùng đi sâu vào ng dng. Thông báo kiu này được gi
là <em>thông báo gián tiếp</em>.</p>
<p>Không như thông báo tiêu chun (trc tiếp), nhn Quay li t màn hình xen k ca mt thông báo gián tiếp
s tr người dùng v đim mà t đó thông báo đó được kích hot&mdash;không có
màn hình b sung nào được chèn vào ngăn xếp. Sau khi người dùng tiến vào ng dng t màn hình xen k
, thao tác Lên trên và Quay li có tác dng như vi thông báo tiêu chun, như được mô t trên:
điu hướng bên trong ng dng thay vì quay li màn hình xen kẽ.</p>
<p>Ví dụ, gi s mt người dùng trong Gmail nhn được mt thông báo gián tiếp t Lch. Chm
vào thông báo này để m ra màn hình xen kẽ, trong đó hin th nhc nh cho mt vài s kin
khác nhau. Chm vào Quay li t màn hình xen k s tr người dùng v Gmail. Chm vào mt s kin
c th s đưa người dùng ra khi màn hình xen k và vào ng dng Lch để hin th chi tiết v
s kin. T chi tiết s kin, Lên trên và Quay li s điu hướng ti dng xem trên cùng ca Lch.</p>
<img src="{@docRoot}design/media/navigation_indirect_notification.png">
<h4>Thông báo bt lên</h4>
<p><em>Thông báo bt lên</em> s b qua ngăn thông báo thay vì xut hin trc tiếp phía
trước người dùng. Chúng hiếm khi được s dng và <strong>nên được để dành cho nhng dp khi cn
phn ng kp thi và vic gián đon ng cnh ca người dùng là cn thiết</strong>. Ví dụ,
Talk s dng kiu này để cnh báo người dùng v li mi t mt người bn để tham gia trò chuyn video, bi
li mi này s t động hết hn sau mt vài giây.</p>
<p>Xét v hành vi điu hướng, thông báo bt lên bám sát cht ch hành vi ca màn hình xen k
trong thông báo gián tiếp. Quay li s b qua thông báo bt lên. Nếu người dùng điu hướng
t màn hình bt lên vào ng dng thông báo, hành vi Lên trên và Quay li s bám sát quy tc áp dng vi thông báo tiêu chun,
điu hướng bên trong ng dng.</p>
<img src="{@docRoot}design/media/navigation_popup_notification.png">
<h2 id="between-apps"iu hướng gia các ng dng</h2>
<p>Mt trong nhng thế mnh cơ bn ca h thng Android đó là kh năng các ng dng kích hot
ln nhau, giúp người dùng có th điu hướng trc tiếp t ng dng này sang ng dng khác. Ví dụ, mt ng dng
cn chp nh có th kích hot ng dng Camera, ng dng này s tr
nh v ng dng chuyn đến. Điu này đặc bit có ích đối vi c nhà phát trin, nhng người có th d dàng tn dng
đon mã t các ng dng khác, ln người dùng, nhng người thích có mt tri nghim nht quán đối vi nhng hành động
được thc hin thường xuyên.</p>
<p>Để hiu rõ điu hướng gia các ng dng, quan trng là phi hiu được hành vi b khung Android
được đề cp dưới đây.</p>
<h4>Hot động, tác v và ý định</h4>
<p>Trong Android, <strong>hot động</strong> là mt thành phn ng dng định nghĩa mt màn hình
thông tin và tt c hành động liên kết mà người dùng có th thc hin. ng dng ca bn là tp hp
ca nhiu hot động, bao gm c hot động do bn to và hot động mà bn s dng li t các ng dng khác.</p>
<p><strong>Tác vụ</strong> là trình t các hot động mà mt người dùng tuân theo để hoàn thành mt mc tiêu.
Tác v đơn có th s dng các hot động t ch mt ng dng, hoc có th da trên hot động t nhiu
ng dng khác nhau.</p>
<p><strong>Ý định</strong> là mt cơ chế để mt ng dng báo hiu rng nó mun s tr giúp
ca mt ng dng khác khi thc hin mt hành động. Các hot động ca mt ng dng có th biu th nhng ý định
mà chúng có th phn hi. Đối vi nhng ý định thường gp như "Chia sẻ", người dùng có th cài đặt nhiu ng dng
có kh năng thc hin yêu cu đó.</p>
<h4>Ví dụ: điu hướng gia các ng dng để h tr chia sẻ</h4>
<p>Để hiu nhng hot động, tác v và ý định này vn hành vi nhau như thế nào, hãy xem cách mt ng dng cho phép người dùng
chia s ni dung bng cách dùng mt ng dng khác. Ví dụ, khi chy ng dng Play Store t Trang ch s bt đầu
Tác v A mi (xem hình bên dưới). Sau khi điu hướng qua Play Store và chm vào mt cun sách được qung cáo
để xem chi tiết ca sách, người dùng vn trong cùng mt tác vụ, m rng nó bng cách thêm vào các hot động. Kích hot
hành động Chia s s nhc người dùng bng mt hp thoi lit kê tng hot động mt (t các ng dng khác nhau)
mà đã đăng ký x lý ý định Chia s đó.</p>
<img src="{@docRoot}design/media/navigation_between_apps_inward.png">
<p>Khi người dùng chn chia s qua Gmail, hot động son email ca Gmail s được thêm làm hot động tiếp tc
Tác v A&mdash;không có tác v mi nào được to thêm. Nếu Gmail có tác v riêng đang chy nn, nó s
không b nh hưởng.</p>
<p>T hot động son email, gi thư hoc chm vào nút Quay li s tr người dùng v
hoạ̣t động chi tiết v cun sách. Nhng ln chm sau đó vào Quay li s tiếp tc điu hướng quay li qua
Store và cui cùng v li Trang chủ.</p>
<img src="{@docRoot}design/media/navigation_between_apps_back.png">
<p>Tuy nhiên, nếu chm vào Lên trên t hot động son email, người dùng biu th mong mun vn nguyên trong
Gmail. Hot động danh sách hi thoi ca Gmail xut hin và Tác v B mi s được to cho nó. Các tác v mi
s luôn được liên kết gc vi Trang chủ, vì thế chm vào Quay li t danh sách hi thoi s quay li đó.</p>
<img src="{@docRoot}design/media/navigation_between_apps_up.png">
<p>Tác v A duy trì chy nn và người dùng có th quay li nó sau (ví dụ, thông qua
màn hình Gn đây). Nếu Gmail đã có tác v riêng đang chy nn, nó s được thay thế
bng Tác v B&mdash;ng cnh trước đó s b b đi phc v cho mc đích mi ca người dùng.</p>
<p>Khi ng dng ca bn đăng ký điu khin ý định bng mt hot động nm sâu trong th bc ca ng dng,
hãy tham kho phn <a href="#into-your-app"iu hướng ti ng dng ca Bn thông qua Widget và Thông báo trên
Màn hình Trang chủ</a> để xem hướng dẫn về cách quy định điều hướng Lên trên.</p>