Android Dev Summit, October 23-24: two days of technical content, directly from the Android team. Sign-up for livestream updates.

Configurar a barra de apps

Em sua 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 do app com o título do app e um menu flutuante.

A partir do Android 3.0 (API 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 oferece uma experiência do Material Design em dispositivos com o Android 2.1 (API nível 7) ou posterior, mas a barra de ação nativa não é compatível com o Material Design, a menos que o dispositivo tenha o Android 5.0 (API nível 21) ou posterior.

Adicionar uma barra de ferramentas a uma atividade

Estas 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, defina o elemento <application> para usar um dos temas NoActionBar do appcompat. O uso de um desses temas evita que o app use a classe ActionBar nativa para disponibilizar 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 do app.

    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 Adição e gerenciamento de 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 diversos 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 do appcompat. Quando você 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().