Configurar a barra de apps

Testar 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 mostra o título da atividade em um lado e um menu flutuante no outro. Mesmo nesse formato básico, a barra do app oferece informações úteis para os usuários e dá aos apps Android uma aparência consistente.

Uma 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 uma ActionBar como barra de apps. Os recursos da barra de apps foram adicionados ao ActionBar nativo em várias versões do Android. Como resultado, a ActionBar nativa se comporta de forma diferente dependendo da versão do Android usada pelo dispositivo.

Por outro lado, os recursos são adicionados à versão da biblioteca AndroidX AppCompat de Toolbar, 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 do AndroidX para implementar as barras de apps das suas atividades. O uso da barra de ferramentas da biblioteca do AndroidX torna o comportamento do app consistente no conjunto mais amplo de dispositivos.

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 AndroidX ao seu 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 aplicativo use a classe ActionBar nativa para fornecer 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 do app.

    Posicione a barra de ferramentas na parte de cima 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 transmita a barra de ferramentas dela, 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 do AndroidX. 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 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().