如何解决导航组件架构 Android
我无法找出动态加载抽屉项目的任何可能解决方案,即根据导航组件架构 Android 中的要求隐藏和显示特定项目。原因是 Navigation 组件架构迫使我们通过在 xml 中添加项然后通过代码添加来手动膨胀 drawer。
如果有人有任何想法动态地执行此操作,例如从 API 获取项目并填充它们,请提供帮助。
注意:- 不知道的人请不要低估它或要求提供不必要的代码片段,因为这是一个描述性的事实,而不是任何代码问题。
解决方法
您可以动态构建菜单项。
第一步 - 在您的活动中找到您的导航视图
private lateinit var navView: NavigationView
...
navView = findViewById(R.id.nav_view)
第二步 - 用这样的项目扩充导航视图
pages.forEach { page ->
navView.menu.add(0,page.navId,page.name)
.apply {
setNavItemIcon(this,page.faIcon,page.customIcon)
isCheckable = true
}
}
navView.menu.setGroupCheckable(0,true,true)
其中 pages - 导航项模型列表,从 db(在您的情况下为 API)获取,'page' 是菜单项的模型。
第三步 - 使用 setNavigationItemSelectedListener 处理点击
navView.setNavigationItemSelectedListener {
onMenuItemSelected(it,pages)
}
此外,您可能还需要使用 navView.menu.clear() 来清除菜单并再次对其进行充气。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。