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](https://developer.android.com/static/images/ui/notifications/actions_actionbar.png?authuser=5&hl=pt)
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 umToolbar
como a barra de apps da sua atividade:
- Adicione a biblioteca AndroidX ao projeto, conforme descrito em Visão geral do AndroidX.
- Certifique-se de que a atividade estenda
AppCompatActivity
:Kotlin
class MyActivity : AppCompatActivity() { // ... }
Java
public class MyActivity extends AppCompatActivity { // ... }
- No manifesto do app, configure o elemento
<application>
para usar um dos temasNoActionBar
do AppCompat, conforme mostrado no exemplo a seguir. O uso de um desses temas impede que o app use a classeActionBar
nativa para disponibilizar a barra de apps.<application android:theme="@style/Theme.AppCompat.Light.NoActionBar" />
- Adicione uma
Toolbar
ao layout da atividade. Por exemplo, o código de layout a seguir adiciona umaToolbar
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.
- No método
onCreate()
da atividade, chame o métodosetSupportActionBar()
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()
.