5. Configurações iniciais do projeto
5.4. Atividade Principal
Nesta seção vamos mostrar algumas modificações na atividade principal bem como explicar seu código inicial.
Primeiramente realize algumas modificações nos seguintes arquivos.
activity_main.xml
Remova o component FAB (Float Action Button) pré-criado
MainActivity.kt
Remova o trecho de código que faz referência ao FAB no método onCreate. Em outro momento vamos fazer a implementação desse tipo de botão.
Use como base o seguinte código:
class MainActivity : AppCompatActivity() {
private lateinit var appBarConfiguration: AppBarConfiguration
private lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
setSupportActionBar(binding.toolbar)
val navController = findNavController(R.id.nav_host_fragment_content_main)
appBarConfiguration = AppBarConfiguration(navController.graph)
setupActionBarWithNavController(navController, appBarConfiguration)
}
override fun onCreateOptionsMenu(menu: Menu): Boolean {
// Inflate the menu; this adds items to the action bar if it is present.
menuInflater.inflate(R.menu.menu_main, menu)
return true
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
return when (item.itemId) {
R.id.action_settings -> true
else -> super.onOptionsItemSelected(item)
}
}
override fun onSupportNavigateUp(): Boolean {
val navController = findNavController(R.id.nav_host_fragment_content_main)
return navController.navigateUp(appBarConfiguration)
|| super.onSupportNavigateUp()
}
}
Nesta versão avançada da atividade principal, adicionamos novas configurações e métodos. Vamos detalhar cada parte.
No método onCreate, configuramos o suporte à Toolbar com o método setSupportActionBar, onde referenciamos a Toolbar definida no arquivo activity.xml. Esse recurso permite que a Toolbar atue como uma ActionBar, que é a barra de ação no topo da tela.
O objeto appBarConfiguration é utilizado para gerenciar as ações e o comportamento da Toolbar com base nas configurações de navegação, facilitando o uso de ícones e o controle do botão de "voltar" conforme o fluxo do aplicativo. O método onSupportNavigateUp também auxilia nesse processo.
Utilizar uma Toolbar (ou ActionBar tradicional) é essencial para adicionar menus e ações globais ao aplicativo. Para inserir um menu, implementamos dois métodos: onCreateOptionsMenu e onOptionsItemSelected. O primeiro carrega um arquivo XML com a estrutura do menu, enquanto o segundo gerencia os eventos de cada item, determinando as ações a serem tomadas quando o usuário interagir com o menu. Mesmo que o menu não seja customizado agora, essas configurações já estão prontas para futuras atualizações.
Vale destacar que o menu adicionado na Toolbar da atividade principal será exibido em todos os fragments (ou telas) do app, tornando-se um elemento consistente e acessível em toda a interface. Isso garante uma navegação intuitiva, pois o menu principal estará sempre disponível, independentemente da tela onde o usuário se encontra.