Em sua forma mais básica, a barra de ações exibe o título da atividade em um e um menu flutuante do outro. Mesmo nessa forma básica, a barra de aplicativos fornece 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](https://developer.android.google.cn/static/images/ui/notifications/actions_actionbar.png?authuser=9&hl=pt-br)
Todas as atividades que usam o tema padrão têm um
ActionBar
como um app
barra. Os recursos da barra de apps são adicionados ao ActionBar
nativo em vários
Versões do Android. Como resultado, o ActionBar
nativo se comporta de maneira diferente.
dependendo da versão do Android usada pelo dispositivo.
Por outro lado, recursos são adicionados à versão da biblioteca AndroidX AppCompat
Toolbar
,
o que significa que esses recursos estão disponíveis em dispositivos que usam as bibliotecas do AndroidX.
Use a classe Toolbar
da biblioteca do AndroidX para implementar o
barras de apps por esse motivo. Usar a barra de ferramentas da biblioteca do AndroidX faz com que a
comportamento 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 do AndroidX ao seu projeto, conforme descrito em Visão geral do AndroidX.
- Certifique-se de que a atividade se estenda
AppCompatActivity
:Kotlin
class MyActivity : AppCompatActivity() { // ... }
Java
public class MyActivity extends AppCompatActivity { // ... }
- No manifesto do app, defina
<application>
para usar um dosNoActionBar
e temas, como mostrado no exemplo a seguir. O uso de um desses temas impede que de usar a classeActionBar
nativa para fornecer a barra de apps.<application android:theme="@style/Theme.AppCompat.Light.NoActionBar" />
- Adicione uma
Toolbar
ao layout da atividade. Por exemplo, os seguintes código de layout adiciona umaToolbar
e faz com que ela pareça flutuante 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ções do Material Design para recomendações sobre a elevação da barra do app.
Posicione a barra de ferramentas no topo do layout, já que você está usando como uma barra de apps.
- No módulo
onCreate()
, chame o métodosetSupportActionBar()
e passe a barra de ferramentas da atividade, conforme mostrado no exemplo a seguir. Isso 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. Você pode 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 aplicativos de uma atividade, você terá acesso ao utilitário
métodos fornecidos pelo sistema de arquivos
ActionBar
. Essa abordagem permite realizar ações úteis, como ocultar e mostrar a barra de apps.
Para usar os métodos utilitários da ActionBar
, chame o método
getSupportActionBar()
. Esse método retorna uma referência a um objeto ActionBar
AppCompat.
Com essa referência, é possível chamar qualquer um dos métodos ActionBar
para ajustar a barra de apps. Por exemplo, para ocultar a barra de apps, chame
ActionBar.hide()
: