navigation+bottomnavigationview实现的tab效果重建fragment问题

胖虎      2022-02-16     447

关键词:

Navigation+BottomNavigationView实现的tab效果重建fragment问题

由于这个控件内部实现会导致fragment频繁重建。因此我们需要对它的listener做一点定制,来处理这个问题


    val periodManagerFragment: Fragment = PeriodManagerFragment()
    val mineFragment: Fragment = MineFragment()

private fun initNavigationView() 
        val navView = uiViewBinding.navView
        navView.setBackgroundColor(resources.getColor(R.color.colorBottomNavigationViewBackgroundColor))
        val navController = findNavController(R.id.nav_host_fragment)
        navView.setupWithNavController(navController)
        var active = periodManagerFragment
        supportFragmentManager.beginTransaction().add(R.id.nav_host_fragment, mineFragment, "2")
            .hide(mineFragment).commit()
        supportFragmentManager.beginTransaction()
            .add(R.id.nav_host_fragment, periodManagerFragment, "1").commit()
        navView.setOnNavigationItemReselectedListener  
        navView.setOnNavigationItemSelectedListener 
            when (it.itemId) 
                R.id.navigation_home -> 
                    supportFragmentManager.beginTransaction().hide(active)
                        .show(periodManagerFragment).commit()
                    active = periodManagerFragment
                
                R.id.navigation_mine -> 
                    supportFragmentManager.beginTransaction().hide(active).show(mineFragment)
                        .commit()
                    active = mineFragment
                
            
            return@setOnNavigationItemSelectedListener true
        
    

如何从 stack.navigation 外部的组件中使用 navigation.navigate

】如何从stack.navigation外部的组件中使用navigation.navigate【英文标题】:Howtousenavigation.navigatefromacomponentoutsidethestack.navigation【发布时间】:2020-07-2423:06:19【问题描述】:我有一个使用Reactnative的应用程序,我正在使用react-navigation(5.... 查看详情

React Native - navigation.navigate 不工作

】ReactNative-navigation.navigate不工作【英文标题】:ReactNative-navigation.navigateisnotworking【发布时间】:2022-01-0622:33:57【问题描述】:我是ReactNative的新手,我正面临ReactNative的一些最糟糕的行为。例如,如果我尝试使用navigation.navigate... 查看详情

错误 React Native with Expo, Navigation ''navigation.navigate is not a function"

】错误ReactNativewithExpo,Navigation\\\'\\\'navigation.navigateisnotafunction"【英文标题】:ErrorReactNativewithExpo,Navigation\'\'navigation.navigateisnotafunction"错误ReactNativewithExpo,Navigation\'\'navigation.navigate 查看详情

navigator浏览器信息

navigator:浏览器信息浏览器代号(内核):navigator.appCodeName浏览器名称:navigator.appName浏览器版本:navigator.appVersion启用Cookies:navigator.cookieEnabled硬件平台:navigator.platform用户代理:navigator.userAgent 查看详情

找不到 androidx.navigation:navigation-compose:

】找不到androidx.navigation:navigation-compose:【英文标题】:Couldnotfindandroidx.navigation:navigation-compose:【发布时间】:2022-01-2108:16:20【问题描述】:我在这里复制了网站中提到的依赖项:https://developer.android.com/guide/navigation/navigation-getting-... 查看详情

ZF2 动态菜单与 Zend\Navigation\Navigation

】ZF2动态菜单与Zend\\\\Navigation\\\\Navigation【英文标题】:ZF2DynamicMenuwithZend\\Navigation\\NavigationZF2动态菜单与Zend\\Navigation\\Navigation【发布时间】:2012-09-1322:17:45【问题描述】:我想问你这个问题。使用Zend\\Navigation\\Navigation创建动态... 查看详情

浏览器检查器

...-------------------------------------------------------------------- *Navigator *ExampleSource document.write( (Navigator.isWinIE())?'IE'+Navigator.isWinIE()+'(Win)': (Navigator.isMacIE())?'IE'+Navigator.isMacIE()+'(Mac)': (Navigator.isGecko())?'Mozilla('+Navigator.isGecko()+')': (Navi... 查看详情

navigator.notification.* 失败“navigator.notification [undefined] 不是对象”

】navigator.notification.*失败“navigator.notification[undefined]不是对象”【英文标题】:navigator.notification.*fails"navigator.notification[undefined]isnotanobject"【发布时间】:2011-03-0116:31:34【问题描述】:对PhoneGapnavigator.notificat 查看详情

navigation.navigate('Home') 在打字稿中显示一些错误

】navigation.navigate(\\\'Home\\\')在打字稿中显示一些错误【英文标题】:navigation.navigate(\'Home\')showingsomeerrorintypescriptnavigation.navigate(\'Home\')在打字稿中显示一些错误【发布时间】:2021-10-1702:57:15【问题描述】:当我使用useNavigation或从... 查看详情

空调代码:navigator.vibrate

】空调代码:navigator.vibrate【英文标题】:AirconsoleCode:navigator.vibrate【发布时间】:2016-05-2711:20:43【问题描述】:我正在查看airconsolejavascript文件并找到一段代码,但我不知道它描述了什么。谁能告诉我。navigator.vibrate=(navigator.vibr... 查看详情

TypeError: undefined is not an object (evaluating 'navigation.navigate') 当 navigation 参数已经嵌套在组件中

】TypeError:undefinedisnotanobject(evaluating\\\'navigation.navigate\\\')当navigation参数已经嵌套在组件中【英文标题】:TypeError:undefinedisnotanobject(evaluating\'navigation.navigate\')givenwhennavigationparameteralreadynestedincomponentT 查看详情

Expo Android 应用程序在 navigation.navigate() 上崩溃

】ExpoAndroid应用程序在navigation.navigate()上崩溃【英文标题】:ExpoAndroidApplicationcrashingonnavigation.navigate()【发布时间】:2021-05-2715:51:37【问题描述】:我的ReactNative应用程序的Android版本在独立构建和Expo客户端的navigation.navigate()上崩... 查看详情

如何使用 Top Navigator 和 Bottom Navigator 而不让 Top Navigator 与 React Navigation 中的状态栏重叠?

】如何使用TopNavigator和BottomNavigator而不让TopNavigator与ReactNavigation中的状态栏重叠?【英文标题】:HowcanIuseTopNavigatorandBottomNavigatorwithouthavingTopNavigatoroverlapwiththeStatusBarinReactNavigation?【发布时间】:2020-10-3100:47:37【问题描述】:我... 查看详情

React navigation navigation.navigate 在使用相机时不会转到下一个屏幕

】Reactnavigationnavigation.navigate在使用相机时不会转到下一个屏幕【英文标题】:Reactnavigationnavigation.navigatedoesn\'tgotonextscreenwhileusingcamera【发布时间】:2019-10-1318:45:09【问题描述】:我正在使用react-navigation3.6.1和react-native-camera2.2.2... 查看详情

reactnative-navigator

Navigator的基本使用Navigator是什么?  一个导航组件  进入下一个界面,返回上一个界面  传递数据给下一个界面,返回数据给上一个界面如何使用Navigator    导入Navigator----->render中返回Navigator... 查看详情

navigator.language 何时与 navigator.languages[0] 不同?

】navigator.language何时与navigator.languages[0]不同?【英文标题】:Whenwillnavigator.languagedifferenttonavigator.languages[0]?【发布时间】:2019-03-3022:56:33【问题描述】:我正在研究浏览器指纹。在app的webview中运行的js会通过获取navigator.language.s... 查看详情

反应原生导航错误`_this.props.navigation.navigate`

】反应原生导航错误`_this.props.navigation.navigate`【英文标题】:reactnativenavigationerror`_this.props.navigation.navigate`【发布时间】:2022-01-1604:16:48【问题描述】:我是react-native的新手。为了学习,我创建了一个示例项目。我想通过按抽屉... 查看详情

navigation基本概述(代码片段)

基本介绍react-navigation的出现替代了Navigator、Ex-Navigation等老一代的导航组件,react-navigation可以说是Navigator的加强版,不仅有Navigator的全部功能,另外还支持底部导航类似于与iOS中的UITabBarController,此外它也支持侧拉效果方式的导... 查看详情