Configurar a barra de apps

Experimente trabalhar com o Compose
O Jetpack Compose é o kit de ferramentas de UI recomendado para Android. Saiba como adicionar componentes no Compose.

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 básico, a barra do app oferece informações úteis para os usuários e dá 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 uma ActionBar como barra de apps. Os recursos da barra de apps são adicionados à ActionBar nativa 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, os recursos são adicionados à versão da biblioteca AndroidX AppCompat do Toolbar, o que significa que esses recursos estão disponíveis em dispositivos que usam as bibliotecas AndroidX.

Use a classe Toolbar da biblioteca AndroidX para implementar as barras de apps das suas atividades. O uso da barra de ferramentas da biblioteca AndroidX torna o comportamento do seu 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 na 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, defina 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 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 de apps.

    Posicione a barra de ferramentas na parte de cima do layout da atividade, já que você a usará como uma barra de apps.

  5. No método onCreate() da atividade, chame o método setSupportActionBar() e passe 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 disponibilizados pela classe ActionBar da biblioteca AndroidX. Essa abordagem permite que você faça coisas ú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 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().