当前位置: 首页 > 知识库问答 >
问题:

使用by navGraphViewModels访问子NavHostFragment的图范围ViewModel

田焕
2023-03-14

我正在使用Android Jetpack(2.2.0-alpha01)的导航组件。

我希望使用嵌套在主NavHostFragment中的子NavHostFragment,该子NavHostFragment配备了它自己的子nav图。有关上下文,请查看下面的图像:

子nav主机在mainnavhost堆栈前面的片段中定义如下:

<fragment
    android:id="@+id/childNavHostFragment"
    android:name="androidx.navigation.fragment.NavHostFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:defaultNavHost="false"
    app:navGraph="@navigation/child_graph" />
private val childGraphScopedViewModel: ChildGraphScopedViewModel by navGraphViewModels(R.navigation.child_graph) {
    viewModelFactory
}
java.lang.IllegalArgumentException: No NavGraph with ID 2131689472 is on the NavController's back stack.

如何访问子navHostFragment作用域ViewModel?谢谢你抽出时间。

共有1个答案

冷翼
2023-03-14

在不定义aby自定义ViewModelProvider(2.2.0)的情况下,这对我来说是有效的:

私有val viewModel:ChildGraphScopedViewModel by

一个容易犯的错误是使用r.navigation.child_graph(坏)而不是r.id.child_graph(好)

 类似资料:
  • 问题内容: 如果我有以下控制器: 读出的正确方法是什么?如果有必要定义中,也不会使它语义上不正确假设是描述相关的东西的属性,而不是? 更新: 对此进行进一步的思考,如果一个孩子有多个孩子,将会在检索上产生冲突。我的问题是,什么是访问的正确方法是从? 问题答案: AngularJS中的作用域使用原型继承,当在子作用域中查找属性时,解释器将从子对象开始查找原型链,并继续寻找父对象,直到找到该属性为止,

  • 我尝试注入$scope,然后使用,但这不起作用? 有人能提供建议吗?

  • 问题内容: 使用定义控制器的原始方法 ,访问父级的作用域非常简单,因为子级作用域原型继承自其父级。 Controller-As方法 似乎是声明控制器的推荐方法。但是,对于Controller-A,上述方法不再有效。 当然,我可以通过View 访问父作用域: 我确实有一些问题(意大利面条代码可能存在),但是这个问题是关于从子控制器访问父作用域的。 我看到此工作的唯一方法是: 因此,现在,子控制器需要

  • 授权端点和令牌端点允许客户端使用“scope”请求参数指定访问请求的范围。反过来,授权服务器使用“scope”响应参数通知客户端颁发的访问令牌的范围。 范围参数的值表示为以空格分隔,大小写敏感的字符串。 由授权服务器定义该字符串。如果该值包含多个空格分隔的字符串,他们的顺序并不重要且每个字符串为请求的范围添加一个额外的访问区域。 scope = scope-token *( SP scope-to

  • 问题内容: Go博客中的“ Go maps in action ”条目指出: 地图不能安全地并发使用:未定义同时读取和写入地图时会发生什么情况。如果您需要从并发执行的goroutine中读取和写入映射,则必须通过某种同步机制来调解访问。保护地图的一种常见方法是使用sync.RWMutex。 但是,一种常见的访问地图的方法是使用关键字遍历它们。出于并发访问的目的,不清楚在一个循环内执行是“读”还是该

  • 范围图包括面积范围图、曲线面积范围图及柱形范围图,另外通过设置 chart.inverted 可将范围柱状图变成范围条形图。 范围图在使用时需要额外引入 highcharts-more.js <script src="http://cdn.hcharts.cn/highcharts/highcharts-more.js"></script> 图4-10 Highcharts 面积范围图 相关例子