Android BottomNavigation未正确使用导航控制器突出显示

Android BottomNavigation未正确使用导航控制器突出显示,第1张

概述我正在尝试从Android架构组件实现Nagivation.我能够在我的片段中成功导航.我试图将它附加到我的底部导航但我无法正确使用它.我可以使用Navigation.findNavController(View).navigate(R.id.Fragment)成功地在片段之间导航,但是当我使用任何UI组件或后退按钮执行此 *** 作时,我底部导航

我正在尝试从Android架构组件实现Nagivation.我能够在我的片段中成功导航.我试图将它附加到我的底部导航但我无法正确使用它.我可以使用Navigation.findNavController(VIEw).navigate(R.ID.Fragment)成功地在片段之间导航,但是当我使用任何UI组件或后退按钮执行此 *** 作时,我底部导航中的突出显示不会更改,如下所示GIF

MainActivity.kt的代码如下,

class MainActivity : AppCompatActivity() {    private lateinit var navController: NavController    private val mOnNavigationItemSelectedListener = BottomNavigationVIEw.OnNavigationItemSelectedListener { item ->        when (item.itemID) {            R.ID.navigation_home -> {                navController.navigate(R.ID.homeFragment)                return@OnNavigationItemSelectedListener true            }            R.ID.navigation_dashboard -> {                navController.navigate(R.ID.addEmotionFragment)                return@OnNavigationItemSelectedListener true            }            R.ID.navigation_notifications -> {                return@OnNavigationItemSelectedListener true            }        }        false    }    overrIDe fun onCreate(savedInstanceState: Bundle?) {        super.onCreate(savedInstanceState)        setContentVIEw(R.layout.activity_main)        navController = Navigation.findNavController(this, R.ID.nav_host)        navigation.setonNavigationItemSelectedListener(mOnNavigationItemSelectedListener)    }}

对于HomeFragment.kt

class HomeFragment : Fragment() {    overrIDe fun onCreateVIEw(inflater: LayoutInflater, container: VIEwGroup?,                              savedInstanceState: Bundle?): VIEw? {        // Inflate the layout for this fragment        return inflater.inflate(R.layout.fragment_home, container, false)    }    overrIDe fun onActivityCreated(savedInstanceState: Bundle?) {        super.onActivityCreated(savedInstanceState)        button.setonClickListener {            Navigation.findNavController(it).navigate(R.ID.addEmotionFragment)        }    }}

解决方法:

尝试使用navigation-ui.

implementation 'androIDx.navigation:navigation-ui:' + navigationVersion //currently 1.0.0-Alpha05

在活动中

    navController = Navigation.findNavController(this, R.ID.nav_host)    NavigationUI.setupWithNavController(bottomNavigation, navController)

并确保您的片段ID匹配菜单ID.

<item        androID:ID="@+ID/homeFragment"        androID:title="Home"/>
总结

以上是内存溢出为你收集整理的Android BottomNavigation未正确使用导航控制器突出显示全部内容,希望文章能够帮你解决Android BottomNavigation未正确使用导航控制器突出显示所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1108977.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存