Android开发踩坑日记

  1. ViewModelProviders被弃用,改为ViewModelProvider
    ViewModelProvider使用方法
MyViewModel model = new ViewModelProvider(this).get(MyViewModel.class);

可能报错
Cannot resolve constructor 'ViewModelProvider(com.example.viewmodeltest.MainActivity)'
解决方法,在build.gradle的dependencies添加

implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
  1. 使用 FragmentContainerView 创建 NavHostFragment,或通过 FragmentTransaction 手动将 NavHostFragment 添加到 Activity 时,尝试通过 Navigation.findNavController(Activity, @IdRes int) 检索 Activity 的 onCreate() 中的 NavController 将失败。

解决办法是直接从 NavHostFragment中获取NavController。

NavHostFragment navHostFragment = (NavHostFragment) getSupportFragmentManager().findFragmentById(R.id.xxx);
NavController controller = navHostFragment.getNavController();
posted @ 2022-10-19 23:42  Leafmoes  阅读(26)  评论(0编辑  收藏  举报