João Victor
Android Dev BR
Published in
1 min readNov 2, 2021

--

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

--

--