您最近不鼓励使用导航组件吗?
Have you recently discouraged using naviation component?
我正在为 single activity
使用 bottom navigation
。
我想做的是通过 bottom menu
(fragment
) 进行各种屏幕转换。
并且我们正在实现切换屏幕的功能,在切换的屏幕上不移动菜单。
我考虑过使用 Android 提供的 BottomNavigation Activity
(可能是 JetPack navigation component
)。
但是,我发现这个组件存在很多问题。特别是 NavController
.
例如,当我切换屏幕然后返回时,我必须手动恢复视图状态。
因为 NavController
使用 replace()
而不是 show/hide
,所以有人告诉我
除了这些问题,更推荐使用FragmentManager
和show/hide
,是吗?
所以我目前正在使用setOnNavigationItemSelectedListener
,但实际上更难,因为我正在自己实现屏幕转换。
如果我是你,我肯定会使用提供的 NavController。
多年来它一直存在问题,其中一些是您所描述的。大多数这些问题已在 version 2.4.0-alpha01 中移除。版本 2.4.0-alpha02 也已经发布了。
查看 this 示例以了解 BottomNavigationView 的实际应用以及新的 NavController。对于任何应用程序来说,这都是一个很好的起点。
我正在为 single activity
使用 bottom navigation
。
我想做的是通过 bottom menu
(fragment
) 进行各种屏幕转换。
并且我们正在实现切换屏幕的功能,在切换的屏幕上不移动菜单。
我考虑过使用 Android 提供的 BottomNavigation Activity
(可能是 JetPack navigation component
)。
但是,我发现这个组件存在很多问题。特别是 NavController
.
例如,当我切换屏幕然后返回时,我必须手动恢复视图状态。
因为 NavController
使用 replace()
而不是 show/hide
,所以有人告诉我
除了这些问题,更推荐使用FragmentManager
和show/hide
,是吗?
所以我目前正在使用setOnNavigationItemSelectedListener
,但实际上更难,因为我正在自己实现屏幕转换。
如果我是你,我肯定会使用提供的 NavController。
多年来它一直存在问题,其中一些是您所描述的。大多数这些问题已在 version 2.4.0-alpha01 中移除。版本 2.4.0-alpha02 也已经发布了。
查看 this 示例以了解 BottomNavigationView 的实际应用以及新的 NavController。对于任何应用程序来说,这都是一个很好的起点。