gpt4 book ai didi

android - 使用底部导航和导航组件在按钮单击上切换选项卡

转载 作者:行者123 更新时间:2023-12-04 23:43:51 27 4
gpt4 key购买 nike

我有一个非常简单的应用程序,它由三个 fragment 和一个底部导航栏组成,是通过在 Android Studio 中使用“新项目 -> 底部导航 Activity ”创建的。第一个 Fragment 包含一个按钮,它应该将我带到第二个 Fragment,就像单击底部导航栏的中间按钮一样。
Fragment with Button
有没有“标准”的方式来做到这一点?
我努力了:

  • 使用 launch(...) Navigation 组件,它似乎使用自己的后台堆栈启动 Fragment 并破坏底部导航。
  • 使用 setSelectedItemId(...)以不同的方式,这要么导致异常,要么以不同的方式破坏底部导航。

  • 在这个 post ,有人问完全相同的问题,但它被标记为 duplicate .我找不到答案,尤其是关于导航组件。

    最佳答案

    点击Button应该与用户点击底部导航中的相应项目具有相同的效果。所以你需要调用setSelectedItemId()BottomNavigationView .这只能在 Activity 中完成。显示BottomNavigationView .
    一种选择是引入 shared ViewModel

  • 一个 LiveDataActivity 观察
  • 一个函数onButtonClicked()OnClickListener 调用您的Button这将更新 LiveData

  • 一旦 LiveData观察者着火了,你的 Activity可以打电话
     binding.navView.selectedItemId = R.id.navigation_dashboard
    请注意,要传递有关此类事件的信息,应选择一些在使用后可以失效的数据类型。参见示例 LiveData with SnackBar, Navigation and other events (the SingleLiveEvent case)

    关于android - 使用底部导航和导航组件在按钮单击上切换选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71310764/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com