gpt4 book ai didi

Android导航组件如何保存BottomNavigationBar fragment 状态

转载 作者:行者123 更新时间:2023-11-30 05:00:49 25 4
gpt4 key购买 nike

我使用 NavigationAdvancedSample 中的 NavigationExtensions.kt 类来实现 BottomNavigationBar 导航。如下所示:

 bottomNavigationView = findViewById(R.id.bottom_nav)
val navGraphIds = listOf(R.navigation.home, R.navigation.category, R.navigation.cart, R.navigation.account, R.navigation.jak)
// Setup the bottom navigation view with a list of navigation graphs
val controller = bottomNavigationView?.setupWithNavController(
navGraphIds = navGraphIds,
fragmentManager = supportFragmentManager,
containerId = R.id.nav_host_container,
intent = intent
)

// Whenever the selected controller changes, setup the action bar.
controller?.observe(this, Observer { navController ->
setupActionBarWithNavController(navController)
})
currentNavController = controlle

我试图保存每次点击的 fragment 状态,但我不知道该怎么做。所有类和 fragment 都是用 java 编写的,只有 Kotlin 中的主要 Activity 和 NavigationExtensions。导航实现:

implementation "androidx.navigation:navigation-fragment:2.2.0-alpha03"
implementation "androidx.navigation:navigation-ui:2.2.0-alpha03"
implementation "androidx.navigation:navigation-fragment-ktx:2.2.0-alpha03"
implementation "androidx.navigation:navigation-ui-ktx:2.2.0-alpha03"

这是我的 Fragment onCreateView 方法之一:

@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
mViewModel = ViewModelProviders.of(this).get(HomePageViewModel.class);
binding = DataBindingUtil.inflate(inflater, R.layout.home_page_fragment, container, false);
binding.setLifecycleOwner(this);
mViewModel.init();
binding.setViewModel(mViewModel);
setHasOptionsMenu(true);
((MainActivity) getActivity()).homeToolbarWithImage();
ShowMainList();
binding.swiperefresh.setOnRefreshListener(this);
return binding.getRoot();
}

谁能帮我解决这个问题?

最佳答案

您可以使用“FragmentPagerAdapter”来保存差异 fragment 的状态。使用“FragmentPagerAdapter”添加您的 fragment 。如果您无法理解 Java 类,也不要担心。你仍然可以直接在你的 Kotlin 类中使用这些。 Kotline 提供了互操作性,因此您可以在同一个项目中同时使用 java 和 kotiln 类。

关于Android导航组件如何保存BottomNavigationBar fragment 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58271601/

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