Na sua forma mais básica, a barra de ação exibe o título da atividade de um lado e um menu de overflow do outro. Mesmo nesta forma simples, a barra de aplicativos fornece informações úteis aos usuários, e ajuda a dar aos aplicativos Android uma aparência consistente.
Figure 1. Uma barra de aplicativos com o menu apptitle e overflow.
A partir do Android 3.0 (API nível 11), todas as atividades que usam o tema padrão têm um ActionBar
como barra de aplicativos. Entretanto, os recursos da barra de aplicativos foram gradualmente adicionados ao nativo ActionBar
em várias versões do Android. Como resultado, o nativo ActionBar
comporta-se de forma diferente dependendo da versão do sistema Android que um dispositivo pode estar usando. Em contraste, os recursos mais recentes são adicionados à versão da biblioteca de suporte de Toolbar
, e estão disponíveis em qualquer dispositivo que possa usar a biblioteca de suporte.
Por este motivo, você deve usar a classe Toolbar
da biblioteca de suporte para implementar as barras de aplicativos das suas atividades. Usar a barra de ferramentas da biblioteca de suporte ajuda a garantir que seu aplicativo terá um comportamento consistente em toda a maior variedade de dispositivos. Por exemplo, o widget Toolbar
fornece uma experiência de design de material em dispositivos rodando Android 2.1 (API nível 7) ou posterior, mas a barra de ação nativa não suporta design de material a menos que o dispositivo esteja rodando Android 5.0 (API nível 21) ou posterior.
Adicionar uma barra de ferramentas a uma atividade
Estas etapas descrevem como configurar um Toolbar
como a barra de aplicativos da sua atividade:
- Adicionar a biblioteca de suporte do appcompat v7 ao seu projeto, conforme descrito em Configuração da biblioteca de suporte.
- Certifique-se de que a atividade se estende
AppCompatActivity
:Kotlin
class MyActivity : AppCompatActivity() { // ...}
Java
public class MyActivity extends AppCompatActivity { // ...}
Nota: Faça esta alteração para cada atividade em seu aplicativo que use um
Toolbar
como uma barra de aplicativos. - No manifesto do aplicativo, defina o elemento
<application>
para usar um dos temas do appcompatNoActionBar
. Usar um destes temas impede que o aplicativo use a classe nativaActionBar
para fornecer a barra de aplicativos. Por exemplo, o elemento<application>
é um dos temas:<application android:theme="@style/Theme.AppCompat.Light.NoActionBar" />
- Adicionar um
Toolbar
ao layout da atividade. Por exemplo, o seguinte código de layout adiciona umToolbar
e dá-lhe a aparência de flutuar acima da atividade:<android.support.v7.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"/>
Veja a especificação do Material Design para recomendações sobre a elevação da barra da aplicação.
Posicione a barra de ferramentas no topo do layout da atividade, uma vez que você está usando-a como uma barra de aplicação.
- No método da atividade
onCreate()
, chame o método da atividadesetSupportActionBar()
, e passe a barra de ferramentas da atividade. Este método define a barra de ferramentas como a barra de aplicativos para a atividade. Por exemplo:Kotlin
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_my) // Note that the Toolbar defined in the layout has the id "my_toolbar" setSupportActionBar(findViewById(R.id.my_toolbar))}
Java
@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my); Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar); setSupportActionBar(myToolbar);}
A sua aplicação tem agora uma barra de acção básica. Por padrão, a barra de ação contém apenas o nome do aplicativo e um menu de overflow. O menu de opções contém inicialmente apenas o item Settings. Você pode adicionar mais ações à barra de ações e ao menu de overflow, como descrito em Adding and Handling Actions.
Use App Bar Utility Methods
Uma vez que você define a barra de ferramentas como uma barra de aplicativos de atividade, você tem acesso aos vários métodos de utilitários fornecidos pela biblioteca de suporte v7 appcompat’s ActionBar
class. Esta abordagem permite-lhe fazer uma série de coisas úteis, como esconder e mostrar a barra de aplicações.