Configurar a barra de apps

Teste o Compose
O Jetpack Compose é o kit de ferramentas de interface recomendado para Android. Aprenda a adicionar componentes no Compose.

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

Imagem mostrando a barra de apps no app Now in Android
Figura 1. Uma barra de apps com um ícone de ação no app Now in Android.

Todas as atividades que usam o tema padrão têm um ActionBar como barra de apps. Os recursos da barra de apps são adicionados ao ActionBar nativo em várias versões do Android. Consequentemente, a ActionBar nativa se comporta de forma diferente, dependendo da versão do Android usada pelo dispositivo.

Por outro lado, recursos são adicionados à versão de Toolbar da biblioteca AndroidX AppCompat, o que significa que esses recursos estão disponíveis em dispositivos que usam as bibliotecas do AndroidX.

Por esse motivo, use a classe Toolbar da biblioteca AndroidX para implementar as barras de apps das atividades. O uso da barra de ferramentas da biblioteca AndroidX torna o comportamento do app consistente na maior gama de dispositivos.

Adicionar uma barra de ferramentas a uma atividade

Estas etapas descrevem como configurar um Toolbar como a barra de apps da sua atividade:
  1. Adicione a biblioteca AndroidX ao projeto, conforme descrito em Visão geral do AndroidX.
  2. Certifique-se de que a atividade estenda AppCompatActivity:

    Kotlin

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

    Java

    public class MyActivity extends AppCompatActivity {
      // ...
    }
    
  3. No manifesto do app, configure o elemento <application> para usar um dos temas NoActionBar do AppCompat, conforme mostrado no exemplo a seguir. O uso de um desses temas impede que o app use a classe ActionBar nativa para disponibilizar a barra de apps.
    <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:
    <androidx.appcompat.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() e transmita a barra de ferramentas da atividade, conforme mostrado no exemplo a seguir. Esse método define a barra de ferramentas como a barra de apps para a atividade.

    Kotlin

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_my)
        // 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 o nome do app e um menu flutuante, que inicialmente contém o item Configurações. É possível adicionar mais ações à barra de ações e ao menu flutuante, conforme descrito em Adicionar e processar ações.

Usar métodos utilitários da barra de apps

Depois de definir a barra de ferramentas como a barra de apps de uma atividade, você terá acesso aos métodos utilitários fornecidos pela classe ActionBar da biblioteca AndroidX. Essa abordagem permite realizar ações úteis, como ocultar e mostrar a barra de apps.

Para usar os métodos utilitários do 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 ActionBar para ajustar a barra de apps. Por exemplo, para ocultar a barra de apps, chame ActionBar.hide().