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.
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 umaToolbar como a barra de apps da sua atividade:
- Adicione a biblioteca AndroidX ao seu projeto, conforme descrito na 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, defina o elemento
<application>para usar um dos temasNoActionBardo AppCompat, conforme mostrado no exemplo a seguir. O uso de um desses temas impede que o app use a classeActionBarnativa para fornecer a barra de apps.<application android:theme="@style/Theme.AppCompat.Light.NoActionBar" />
- Adicione uma
Toolbarao layout da atividade. Por exemplo, o código de layout a seguir adiciona umaToolbare 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.
- No método
onCreate()da atividade, chame o métodosetSupportActionBar()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().