Android Dev BR
Published in

Android Dev BR

Implementando Menus de maneira mais simples

A partir da Versão 1.4.0-alpha01 do Android, a classe ComponentActivity agora implementa a interface MenuHost.

https://developer.android.com/jetpack/androidx/releases/activity#1.4.0-alpha01

Isso possibilita que qualquer componente adicione itens de menu à ActionBar, somente adicionando uma instância do MenuProvider à atividade ou um Fragment.

Cada MenuProvider, também pode ser adicionado ao MenuHost com um LifeCycle, que controlará automaticamente a visibilidade desses itens de menu com base no estado do LifeCycle e processará a remoção do MenuProvider quando a View for destruída.

Como mencionado no código acima, também podemos passar um Lifecycle.State como argumento. Como passamos um estado de RESUMED, uma vez que o determinado LifeCycleOwner atinge o Lifecycle.State, o MenuProvider será adicionado ao MenuHost e nosso menu será apresentado.

Com essa atualização podemos referenciar somente a interface, nos possibilitando a injeção do MenuProvider.

Agora se torna bem mais fácil testar e manipular nossos Menu.

Para mais detalhes da nova implementação, confira o link da documentação abaixo.

https://developer.android.com/reference/kotlin/androidx/core/view/MenuHost

--

--

Artigos em português sobre Android, curados pela comunidade Android Dev BR. Junte-se a nós: https://androiddevbr.org/.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store