material-components / material-components/material-components-android
[NavigationView] Update visibility not working for programmatically added menu item.
Nessuno ha ancora preso questa issue.
- Lingua principale
- Java
- Stelle
- 17.4k
- Fork
- 3.2k
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
Description: When we add a menu item programmatically and then change its visibility, the menu item is still visible.
binding.navView.menu.add(R.id.otherMenuGroup, 999, 300, null).setActionView(R.layout.item_menu)
private fun updateMenu() {
val menuItemCount: Int = binding.navView.menu.size()
for (i in 0 until menuItemCount) {
val menuItem: MenuItem = binding.navView.menu.getItem(i)
val visible = isParentGroupVisible(menuItem)
menuItem.isVisible = visible
menuItem.isEnabled = visible
}
binding.navView.invalidate()
}
private fun isParentGroupVisible(menuItem: MenuItem): Boolean {
val groupId = menuItem.groupId
if (groupId == R.id.mainMenuGroup) {
return isMainMenu
} else if (groupId == R.id.otherMenuGroup) {
return !isMainMenu
}
return false
}
Actual behavior:
As you can see Items with error menu item is still visible on scenario 3
| User open app | The user clicks on the Android image, and the update menu item is called. | The user clicks on the Android image again, and the update menu item is called. |
Expected behavior:
Items with error menu item should not be visible on scenario 3
| User open app | The user clicks on the Android image, and the update menu item is called. | The user clicks on the Android image again, and the update menu item is called. |
Source code:
Material Library version:
Version 1.13.0-alpha10.
Note: works correctly on 1.11.0
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia riproducendo l'aggiornamento della visibilità con il file TestDrawer.zip allegato e confronta il comportamento tra Material Library 1.13.0-alpha10 e 1.11.0. Segui la voce di menu NavigationView aggiunta programmaticamente attraverso la chiamata a updateMenu e verifica che la voce sia nascosta nello scenario 3 senza introdurre regressioni negli scenari precedenti.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- android, kotlin
- Ambito
- mobile
- Tipo di issue
- Bug
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100