Neste post será apresentado o conceito de Action Bar em Android.
A Action
Bar é um componente visual que se localiza no topo da Activity, e que mostra
seu título, modos de navegação e outros itens interativos.
Por padrão, a Action Bar mostra o ícone do aplicativo na esquerda, seguido pelo
título da atividade. Se sua Activity
possuir um Options Menu, podemos criar
alguns itens acessíveis diretamente da Action
Bar, chamados de "action items". Também podemos modificar
diversas características da Action Bar
ou removê-los completamente.
Em uma Activity,
podemos recuperar uma instância da Action
Bar chamando o método getActionBar() ou
getSupportActionBar(). Por que temos
estas duas opções, e não apenas uma? Porque, nativamente, a Action Bar só funciona a partir da API
11. Porém, existem bibliotecas de compatibilidade que possibilitam que API’s
inferiores à 11 também utilizem Action
Bar. Neste caso, o método utilizado é o getSupportActionBar().
Action Bar visualmente
Abaixo temos uma breve demonstração de como é
uma Action Bar:
· [2] Action Items (neste caso, de “Pesquisa” e “Google Play”).
· [3] O PopUp Menu, melhor conhecido (na literatura de Action Bar) como Action Overflow.
Com uma Action
Bar, temos um espaço dedicado à dar a nossa aplicação uma identidade, indicar
um guia, um ponto de partida ao usuário. Com ela, ações importantes são
facilmente acessíveis (como a Pesquisa), e também diversos tipos de modos de
navegação (como Tab’s e listas de Drop-Down).
Botão “Up”
Podemos habilitar o ícone do
nosso aplicativo como um botão “Up”, que permite ao usuário navegar pelo
aplicativo através da hierarquia de ordem de chamadas de cada tela. Por
exemplo, se a tela A mostra uma lista de itens, e selecionando um item vamos à
tela B, então a tela B deve possuir um botão “Up” que quando clicado retornará
o fluxo da aplicação para a tela A.
No entanto, este botão é
diferente do botão físico “Back”. O botão “Back” é usado para navegar em ordem
cronológica inversa através do histórico de telas que o usuário trabalhou
recentemente, e é geralmente baseada nos relacionamentos temporais entre as
telas, diferentemente do botão “Up”, que se baseia na estrutura hierárquica do
aplicativo (que é a base da navegação deste botão).
Abaixo temos o botão “Up” para
o aplicativo Gmail:
Para habilitar o botão “Up”, devemos utilizar o
método setDisplayHomeAsUpEnabled().
Action View
Como exemplo de Action View, usaremos o botão a funcionalidade “Search”.
Uma Action
View é um widget que aparece na Action Bar como um substituto para um Action Button.
Uma Action View possibilita acesso rápido à diversas opções sem que
precisemos trocar de telas ou fragmentos, e sem deslocar as estrutura de uma Action Bar. Por exemplo, se temos uma
ação de Pesquisa, podemos adicionar uma Action
View para anexar uma caixa de pesquisa na Action Bar, como mostrado abaixo.
Para configurar uma Action View, podemos fazer isto através do método onCreateOptionsMenu(). O objeto da Action View pode ser obtido chamando-se
o método MenuItemCompat.getActionView()
e passando como argumento um respectivo MenuItem.
Por exemplo, a caixa de pesquisa do exemplo acima pode ser obtido através do
código abaixo.
Action Items
Uma Action
Bar fornece acesso aos mais importantes Action
Items relativos à um aplicativo. Estes aparecem diretamente na Action Bar com um ícone e/ou um texto, e
também conhecidos como Action Buttons.
As ações que não cabem na Action Bar
são escondidas no chamado Action Overflow
(tal qual mencionado na seção 4.2.1).
O usuário, ao clicar no botão de Overflow
(no lado direito da Action Bar),
revela uma lista de outras opções de Action
Items.
Quando uma Activity
começa, a aplicação popula os Action
Items através do método onCreateOptionsMenu().
Este método pode ser usado para inflar um menu que define todos os Action Items. Por exemplo, abaixo temos
um menu definindo alguns itens de menu (situado em algum arquivo XML da pasta res/menu).
Como mencionado acima, a Activity conversa com este menu através do método onCreateOptionsMenu().
Podemos
requisitar que um item específico apareça na Action Bar como um Action Button.
Isto é feito através da propriedade showAsAction="ifRoom"
da tag <item> do XML de menu,
tal qual mostrado abaixo.
Se não há espaço suficiente para o item na Action Bar, ele aparecerá no Action Overflow.
É aconselhável definir sempre o título de cada
item mesmo que não esteja explicitamente declarado que o título apareça com o Action Item, pelas seguintes razões:
· Leitores de tela para deficientes visuais leêm o título do Action Item.
· Se o Action Item aparece apenas com o ícone, um usuário poderá realizar uma ação de longo-clique neste item para mostrar uma “dica” que mostra o título do item.
O ícone é opcional, mas recomendado.
Quando o usuário escolhe uma ação, a aplicação
Android chama o método onOptionsItemSelected().
Usando o MenuItem passado para este
método, podemos identificar a ação chamando
o getItemId(). Este método returna um
identificador único através da propriedade <item>
do menu. Assim, podemos realizar a ação requisitada. Por exemplo:
-----
Assim, chegamos ao fim de mais um tópico.
Caso alguém tenha uma dúvida, crítica ou sugestão, sinta-se à vontade.
Nenhum comentário:
Postar um comentário