gpt4 book ai didi

android - 导航拱形组件和 fragment 娱乐

转载 作者:行者123 更新时间:2023-11-29 14:16:35 25 4
gpt4 key购买 nike

我将BottomNavigationViewNavHostFragment一起使用,目前只有2个标签,位于我使用的导航图下方

<?xml version="1.0" encoding="utf-8"?>
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main_navigation"
app:startDestination="@id/fragment1">

<fragment
android:id="@+id/fragment1"
android:name="something.ListingFragment"
android:label="@string/hello" />

<fragment
android:id="@+id/fragment2"
android:name="something.ListingFragment2"
android:label="@string/Hi" />

</navigation>




而BottomNavigation菜单是:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<item
android:id="@id/fragment1"
android:icon="@drawable/ic1"
android:title="@string/hello"
tools:showAsAction="ifRoom" />
<item
android:id="@id/fragment2"
android:icon="@drawable/ic2"
android:title="@string/hi"
tools:showAsAction="ifRoom" />


    

使用以下命令一起设置所有组件:

val bottomNavigationView = findViewById<BottomNavigationView>(R.id.bottom_navigation_view)
val navHostFragment = supportFragmentManager.findFragmentById(R.id.navigation_host_fragment) as NavHostFragment
NavigationUI.setupWithNavController(bottomNavigationView, navHostFragment.navController)




问题是,每次我在选项卡之间切换时,它都会创建一个我单击的选项卡片段的新实例,是否有一种方法可以管理这种情况,以防止在内存中已经存在新项目的情况下进行创建?

最佳答案

我的回答仅限于Java。但是你会明白的:

在BottomNavigationView上单击,尝试按id查找片段,如果它存在于内存中,则无需创建一个片段,

ListingFragment listingFragment
if (findViewById(R.id.fragment1) != null) {
listingFragment = findViewById(R.id.fragment1);
}
// if the listing fragment is null then create new one
else{
listingFragment = new ListingFragment();
}
getSupportFragmentManager().beginTransaction()
.add(R.id.fragment_container, firstFragment).commit();


或者您可以根据需要将其添加到堆栈中。

关于android - 导航拱形组件和 fragment 娱乐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52947341/

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