1 page.title=Navegao com Voltar e Para cima 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>Documentos do desenvolvedor</h3> 9 <p>Implementao de navegao efetiva</p> 10 </div> 11 </a> 12 13 <p itemprop="description">A navegao consistente um componente essencial da experincia geral do usurio. Poucas coisas deixam os 14 usurios mais frustrados do que uma navegao bsica que se comporta de forma inconsistente ou inesperada. O Android 3.0 15 introduziu mudanas significativas no comportamento global da navegao. Seguir cuidadosamente as 16 diretrizes de Voltar e Para Cima tornar a navegao em seu aplicativo previsvel e confivel para os usurios.</p> 17 <p>O Android 2.3 e anteriores se baseavam no boto <em>Voltar</em> do sistema para dar suporte navegao dentro de um 18 aplicativo. Com a introduo de barras de ao no Android 3.0, um segundo mecanismo de navegao apareceu: 19 o boto <em>Para Cima</em>, consistindo no cone do aplicativo e em um cursor para a esquerda.</p> 20 21 <img src="{@docRoot}design/media/navigation_with_back_and_up.png"> 22 23 <h2 id="up-vs-back">Para Cima vs Voltar</h2> 24 25 <p>O boto Para Cima usado para navegar dentro de um aplicativo com base nos relacionamentos hierrquicos 26 entre telas. Por exemplo, se a tela A exibe uma lista de itens e selecionar um item leva 27 tela B (que apresenta aquele item em mais detalhes), a tela B deve oferecer um boto Para Cima que 28 volte tela A.</p> 29 <p>Se determinada tela a superior na hierarquia de um aplicativo (ou seja, a tela inicial do aplicativo), ela no deve apresentar um boto 30 Para Cima.</p> 31 32 <p>O boto Voltar do sistema usado para navegar, em ordem cronolgica inversa, pelo histrico 33 de telas em que o usurio esteve recentemente. Ele geralmente baseado em relacionamentos temporais 34 entre telas, em vez de na hierarquia do aplicativo.</p> 35 36 <p>Quando a tela visualizada anteriormente tambm for a superior hierrquica imediata da tela atual, pressionar 37 o boto Voltar tem o mesmo resultado que pressionar um boto Para Cima — essa uma ocorrncia 38 comum. No entanto, diferentemente do boto Para Cima, que garante que o usurio permanea dentro do aplicativo, o boto 39 Voltar pode retornar o usurio tela inicial ou at mesmo a um aplicativo diferente.</p> 40 41 <img src="{@docRoot}design/media/navigation_up_vs_back_gmail.png"> 42 43 <p>O boto Voltar tambm suporta alguns comportamentos no vinculados diretamente navegao entre telas: 44 </p> 45 <ul> 46 <li>Descarta janelas flutuantes (caixas de dilogo, pop-ups)</li> 47 <li>Descarta barras de ao contextuais e remove o destaque dos itens selecionados</li> 48 <li>Oculta o teclado da tela (IME)</li> 49 </ul> 50 <h2 id="within-app">Navegao dentro do seu aplicativo</h2> 51 52 <h4>Navegao para telas com vrios pontos de entrada</h4> 53 <p>Algumas vezes, uma tela no tem uma posio rigorosa dentro da hierarquia do aplicativo e pode ser acessada 54 de vrios pontos de entrada — como uma tela de configuraes que pode ser acessada de qualquer outra tela 55 no aplicativo. Nesse caso, o boto Para Cima deve escolher voltar tela anterior, comportando-se 56 de forma idntica a Voltar.</p> 57 <h4>Mudana de vista dentro de uma tela</h4> 58 <p>Mudar opes de vista de uma tela no muda o comportamento de Para Cima nem de Voltar: a tela ainda 59 estar no mesmo lugar dentro da hierarquia do aplicativo e nenhum histrico de navegao ser criado.</p> 60 <p>Exemplos de tais mudanas de vista so:</p> 61 <ul> 62 <li>Alternar vistas usando guias e/ou deslizando para a esquerda e para a direita</li> 63 <li>Alternar vistas usando um menu suspenso (tambm chamadas de abas recolhidas)</li> 64 <li>Filtrar uma lista</li> 65 <li>Classificar uma lista</li> 66 <li>Mudar caractersticas de exibio (como mudar o zoom)</li> 67 </ul> 68 <h4>Navegao entre telas de mesmo nvel</h4> 69 <p>Quando o aplicativo suporta navegao de uma lista de itens para uma vista de detalhes de um desses itens, 70 frequentemente desejvel dar suporte navegao de direo daquele item para outro anterior ou 71 posterior a ele na lista. Por exemplo, no Gmail, fcil deslizar para a esquerda ou para a direita em uma 72 conversa para visualizar uma mais nova ou mais antiga na mesma Caixa de entrada. Assim como ao mudar a vista dentro de uma tela, tal 73 navegao no muda o comportamento de Para Cima ou Voltar.</p> 74 75 <img src="{@docRoot}design/media/navigation_between_siblings_gmail.png"> 76 77 <p>No entanto, uma exceo notvel a isso ocorre ao navegar entre vistas de detalhes relacionadas no 78 vinculadas pela lista de referncia — por exemplo, ao navegar na Play Store entre aplicativos 79 do mesmo desenvolvedor ou lbuns do mesmo artista. Nesses casos, seguir cada link cria 80 um histrico, fazendo com que o boto Voltar passe por cada tela visualizada anteriormente. Para Cima deve continuar a 81 ignorar essas telas relacionadas e navegar para a tela do continer visualizada mais recentemente.</p> 82 83 <img src="{@docRoot}design/media/navigation_between_siblings_market1.png"> 84 85 <p>Voc tem a capacidade de deixar o comportamento de Para Cima ainda mais inteligente com base em seu conhecimento da 86 vista de detalhe. Estendendo o exemplo da Play Store acima, imagine que o usurio navegou do ltimo 87 Livro visualizado para os detalhes da adaptao do Filme. Nesse caso, Para Cima pode retornar a um continer 88 (filmes) pelo qual o usurio no navegou anteriormente.</p> 89 90 <img src="{@docRoot}design/media/navigation_between_siblings_market2.png"> 91 92 <h2 id="into-your-app">Navegao para o seu aplicativo pelos widgets de tela inicial e notificaes</h2> 93 94 <p>Voc pode usar widgets de tela inicial ou notificaes para ajudar os usurios a navegar diretamente para telas 95 profundas na hierarquia do seu aplicativo. Por exemplo, o widget Caixa de Entrada do Gmail e a notificao de nova mensagem podem 96 ignorar a tela Caixa de Entrada, levando o usurio diretamente a uma vista de conversa.</p> 97 98 <p>Para esses dois casos, trate o boto Para Cima da seguinte forma:</p> 99 100 <ul> 101 <li><em>Se a tela de destino normalmente acessada de uma determinada tela dentro do 102 aplicativo</em>, Para Cima deve navegar para essa tela.</li> 103 <li><em>Caso contrrio</em>, Para Cima deve navegar para a tela superior ("Tela inicial") do aplicativo.</li> 104 </ul> 105 106 <p>No caso do boto Voltar, voc deve tornar a navegao mais previsvel inserindo o caminho de navegao para cima 107 completo na pilha de retorno da tarefa at a tela superior do aplicativo. Isso permite que usurios 108 que se esqueceram de como entraram no aplicativo naveguem para a tela superior do aplicativo 109 antes de sarem.</p> 110 111 <p>Como exemplo, o widget da Tela inicial do Gmail tem um boto para mergulhar diretamente para a tela 112 de composio. Para Cima ou Voltar na tela de composio deve levar o usurio Caixa de Entrada e, de l, o 113 boto Voltar continua at a Tela inicial.</p> 114 115 <img src="{@docRoot}design/media/navigation_from_outside_back.png"> 116 117 <h4>Notificaes indiretas</h4> 118 119 <p>Quando o aplicativo precisa apresentar simultaneamente informaes sobre vrios eventos, ele pode usar 120 uma nica notificao que direcione o usurio a uma tela intersticial. Essa tela resume esses 121 eventos e fornece caminhos para que o usurio mergulhe profundamente no aplicativo. Notificaes desse estilo so 122 chamadas de <em>notificaes indiretas</em>.</p> 123 124 <p>Diferentemente de em notificaes padro (diretas), pressionar Voltar em uma tela intersticial da 125 notificao indireta retorna o usurio ao ponto em que a notificao foi acionada — nenhuma 126 tela adicional inserida na pilha de retorno. Quando o usurio prossegue para o aplicativo da 127 tela intersticial, Para Cima e Voltar se comportam como em notificaes padro, como descrito acima: 128 navegando dentro do aplicativo em vez de voltar tela intersticial.</p> 129 130 <p>Por exemplo, suponha que um usurio no Gmail receba uma notificao indireta do Agenda. Tocar nessa 131 notificao abrir a tela intersticial, que exibir lembretes para vrios 132 eventos. Tocar em Voltar na tela intersticial retornar o usurio ao Gmail. Tocar em um determinado evento 133 levar o usurio da tela intersticial ao aplicativo completo do Agenda para exibir detalhes do 134 evento. Dos detalhes do evento, Para Cima e Voltar navegam para a vista de nvel superior do Agenda.</p> 135 136 <img src="{@docRoot}design/media/navigation_indirect_notification.png"> 137 138 <h4>Notificaes pop-up</h4> 139 140 <p><em>Notificaes pop-up</em> ignoram a gaveta de notificaes, aparecendo diretamente na 141 frente do usurio. Elas so usadas raramente e <strong>devem ser reservadas para ocasies em que uma resposta 142 rpida e a interrupo do contexto do usurio sejam necessrias</strong>. Por exemplo, 143 o Talk usa esse estilo para alertar o usurio sobre um convite de um amigo para participar de uma conversa com vdeo, j que este 144 convite expirar automaticamente depois de alguns segundos.</p> 145 146 <p>Em termos do comportamento da navegao, notificaes pop-up seguem de perto o comportamento da tela intersticial 147 de uma notificao indireta. Voltar descarta a notificao pop-up. Se o usurio navegar 148 da janela pop-up para o aplicativo que realizou a notificao, Para Cima e Voltar seguem as regras de notificaes padro, 149 navegando dentro do aplicativo.</p> 150 151 <img src="{@docRoot}design/media/navigation_popup_notification.png"> 152 153 <h2 id="between-apps">Navegao entre aplicativos</h2> 154 155 <p>Um dos pontos fortes fundamentais do sistema Android a capacidade dos aplicativos de ativar 156 uns aos outros, dando ao usurio a capacidade de navegar diretamente de um aplicativo para outro. Por exemplo, um 157 aplicativo que precisa capturar uma foto pode ativar o aplicativo Cmera, que devolver a foto 158 ao aplicativo que o chamou. Esse um imenso benefcio para o desenvolvedor, que pode aproveitar 159 facilmente cdigo de outros aplicativos, e para o usurio, que tem uma experincia consistente para aes 160 comumente realizadas.</p> 161 162 <p>Para entender a navegao entre aplicativos, importante entender o comportamento da estrutura de trabalho do Android 163 discutida abaixo.</p> 164 165 <h4>Atividades, tarefas e intenes</h4> 166 167 <p>No Android, uma <strong>atividade</strong> um componente do aplicativo que define uma tela de 168 informaes e todas as aes associadas que o usurio pode executar. Seu aplicativo uma coleo de 169 atividades, consistindo em atividades que voc cria e naquelas que reutiliza de outros aplicativos.</p> 170 171 <p>Uma <strong>tarefa</strong> a sequncia de atividades que um usurio segue para atingir um objetivo. Uma 172 nica tarefa pode usar atividades apenas de um aplicativo ou pode retirar atividades de uma srie 173 de outros aplicativos.</p> 174 175 <p>Uma <strong>inteno</strong> um mecanismo para que um aplicativo sinalize que gostaria a assistncia de outro 176 aplicativo para realizar uma ao. As atividades de um aplicativo podem indicar a que intenes 177 ele responde. Para intenes comuns, como "Compartilhar", o usurio pode ter vrios aplicativos 178 instalados que atendam a essa solicitao.</p> 179 180 <h4>Exemplo: navegao entre aplicativos para suporte a compartilhamento</h4> 181 182 <p>Para entender como atividades, tarefas e intenes funcionam juntas, entenda como um aplicativo permite que usurios 183 compartilhem contedo usando outro aplicativo. Por exemplo, executar o aplicativo Play Store na tela inicial comea 184 uma nova Tarefa A (veja a figura baixo). Depois de navegar pela Play Store e tocar em um livro em promoo 185 para ver os detalhes, o usurio permanecer na mesma tarefa, estendendo-a ao adicionar atividades. Acionar 186 a ao Compartilhar exibe ao usurio uma caixa de dilogo listando cada uma das atividades (de diferentes aplicativos) 187 que foram registradas para tratar a inteno Compartilhar.</p> 188 189 <img src="{@docRoot}design/media/navigation_between_apps_inward.png"> 190 191 <p>Quando o usurio seleciona o compartilhamento via Gmail, a atividade de composio do Gmail adicionada como uma continuao da 192 Tarefa A — nenhuma tarefa nova criada. Se o Gmail tivesse a prpria tarefa em execuo em segundo plano, ela no 193 seria afetada.</p> 194 195 <p>Da atividade de composio, enviar a mensagem ou tocar no boto Voltar retornar o usurio 196 atividade de detalhes do livro. Toques subsequentes em Voltar continuaro a navegar para trs pela Play 197 Store at chegar Pgina inicial.</p> 198 199 <img src="{@docRoot}design/media/navigation_between_apps_back.png"> 200 201 <p>No entanto, tocando em Para Cima na atividade de composio, o usurio indica que deseja permanecer no 202 Gmail. A atividade da lista de conversas do Gmail exibida e uma nova Tarefa B criada para ela. Novas tarefas 203 so sempre vinculadas Pgina inicial, portanto, tocar em Voltar na lista de conversas retorna a ela.</p> 204 205 <img src="{@docRoot}design/media/navigation_between_apps_up.png"> 206 207 <p>A Tarefa A persiste no segundo plano e o usurio pode voltar a ela mais tarde (por exemplo, via tela 208 Recentes). Se o Gmail j tivesse a prpria tarefa em execuo em segundo plano, ela seria substituda 209 pela Tarefa B — o contexto anterior abandonado em favor do novo objetivo do usurio.</p> 210 211 <p>Quando o aplicativo registrado para tratar intenes com uma atividade em um ponto profundo da hierarquia do aplicativo, 212 consulte <a href="#into-your-app">Navegao para o seu aplicativo pelos widgets de tela 213 inicial e notificaes</a> para ver orientaes sobre como especificar a navegao Para Cima.</p> 214