Configurar a barra de apps

Na forma mais básica, a barra de ações exige o título da atividade em um lado e um menu flutuante no outro. Mesmo nesse formato simples, a barra do app oferece informações úteis para os usuários e ajuda a dar uma aparência consistente aos apps Android.

Figura 1. Uma barra de apps com o título do app e um menu flutuante.

A partir do Android 3.0 (API de nível 11), todas as atividades que usarem o tema padrão terão uma ActionBar como barra de apps. No entanto, os recursos da barra de apps foram gradualmente adicionados à ActionBar nativa em várias versões do Android. Consequentemente, a ActionBar nativa se comporta de forma diferente dependendo da versão do sistema Android usada pelo dispositivo. Por outro lado, os recursos mais recentes foram adicionados à versão da Toolbar da Biblioteca de Suporte e eles estão disponíveis em qualquer dispositivo que use essa biblioteca.

Por esse motivo, use a classe Toolbar da Biblioteca de Suporte para implementar as barras de apps das suas atividades. O uso da barra de ferramentas da Biblioteca de Suporte ajuda a garantir que seu app tenha um comportamento consistente no conjunto mais amplo de dispositivos. Por exemplo, o widget Toolbar fornece uma experiência de Material Design em dispositivos com o Android 2.1 (API nível 7) ou mais recente, mas a barra de ações nativa não é compatível com o Material Design, a menos que o dispositivo tenha o Android 5.0 (nível de API 21) ou mais recente.

Adicionar uma barra de ferramentas a uma atividade

Essas etapas descrevem como configurar uma Toolbar como a barra de apps da sua atividade:
  1. Adicione a Biblioteca de Suporte v7 appcompat ao seu projeto, conforme descrito na seção Configuração da Biblioteca de Suporte.
  2. Certifique-se de que a atividade estenda AppCompatActivity:

    Kotlin

        class MyActivity : AppCompatActivity() {
          // ...
        }
        

    Java

        public class MyActivity extends AppCompatActivity {
          // ...
        }
        

    Observação: faça essa mudança para cada atividade do seu app que use uma Toolbar como barra de apps.

  3. No manifesto do app, configure o elemento <application> para usar um dos temas NoActionBar do appcompat. O uso de um desses temas impede que o app use a classe ActionBar nativa para fornecer a barra de apps. Por exemplo:
        <application
            android:theme="@style/Theme.AppCompat.Light.NoActionBar"
            />
        
  4. Adicione uma Toolbar ao layout da atividade. Por exemplo, o código de layout a seguir adiciona uma Toolbar e faz com que ela pareça flutuar acima da atividade:
        <android.support.v7.widget.Toolbar
           android:id="@+id/my_toolbar"
           android:layout_width="match_parent"
           android:layout_height="?attr/actionBarSize"
           android:background="?attr/colorPrimary"
           android:elevation="4dp"
           android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
           app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
        

    Consulte a especificação do material design para recomendações sobre a elevação da barra de apps.

    Posicione a barra de ferramentas no topo do layout da atividade, porque você a usará como uma barra de apps.

  5. No método onCreate() da atividade, chame o método setSupportActionBar() da atividade e passe a barra de ferramentas dela. Esse método define a barra de ferramentas como a barra de apps para a atividade. Por exemplo:

    Kotlin

        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_my)
            // Note that the Toolbar defined in the layout has the id "my_toolbar"
            setSupportActionBar(findViewById(R.id.my_toolbar))
        }
        

    Java

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_my);
            Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar);
            setSupportActionBar(myToolbar);
        }
        

Seu app agora tem uma barra de ações básica. Por padrão, a barra de ações contém apenas o nome do app e um menu flutuante. O menu de opções inicialmente contém apenas o item Settings. É possível adicionar mais ações à barra de ações e ao menu flutuante, conforme descrito em Adicionar e processar ações.

Usar os métodos utilitários da barra do app

Depois de definir a barra de ferramentas como a barra de apps de uma atividade, você terá acesso aos vários métodos utilitários disponibilizados pela classe ActionBar da Biblioteca de Suporte v7 appcompat. Essa abordagem permite que você realize várias atividades úteis, como ocultar e mostrar a barra de apps.

Para usar os métodos utilitários ActionBar, chame o método getSupportActionBar() da atividade. Esse método retorna uma referência a um objeto ActionBar da appcompat. Quando tiver essa referência, poderá chamar qualquer um dos métodos da ActionBar para ajustar a barra de apps. Por exemplo, para ocultar a barra de apps, chame ActionBar.hide().