我使用了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我尝试保存每个点击的片段状态,但我不知道如何做。所有的类和片段都是用java编写的,只有Kotlin中的main 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"这是我的片段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();
}有人能帮我解决这个问题吗?
发布于 2019-12-05 15:17:18
您可以使用"FragmentPagerAdapter“来保存diff片段的状态。使用"FragmentPagerAdapter“添加您的片段。如果你不能理解java类,也不用担心。你仍然可以在你的kotlin类中直接使用它们。Kotline提供了互操作性,因为您可以在同一项目中同时使用java和kotiln类。
https://stackoverflow.com/questions/58271601
复制相似问题