Fab*_*bio 6 android android-architecture-components android-jetpack android-architecture-navigation
我正在使用导航控制器1.0.0alpha05,它的工作原理非常好,但是当我在活动结果之后执行导航操作时,我却在为这个可怕的错误而苦苦挣扎。
我有一个单一的活动/多个片段结构,特别是一个包含项目列表的片段,另一个具有用于添加新项目的形式的片段。
当我添加另一张没有任何图片的照片时,它正在工作,并返回带有项目列表的上一张照片,但是当我拍摄一些照片时,导航期间会出现异常。
原因:java.lang.IllegalArgumentException:此NavController未知导航目标XX
包含操作的表单片段的导航图:
<fragment
android:id="@+id/idFormFragment"
android:name="FormFragment"
android:label="FormFragment"
tools:layout="@layout/form_fragment">
<argument
android:name="idClient"
android:defaultValue="-1"
app:argType="integer" />
<argument
android:name="idServer"
app:argType="string" />
<action
android:id="@+id/actionFormToList"
app:destination="@id/idListFragment" />
</fragment>
Run Code Online (Sandbox Code Playgroud)
带安全参数的动作调用代码
FormFragmentDirections.ActionFormToList action = new FormFragmentDirections.ActionFormToList(sample.getIdJob());
Navigation.findNavController(getView()).navigate(action);
Run Code Online (Sandbox Code Playgroud)
谢谢你的时间
我找到了解决方法,但显然我不能将其视为解决方案:
我认为当片段实例状态恢复时,与此类片段关联的 nav_graph 操作的链接会以某种方式丢失或发生某种情况......但我可能是错的
在这种情况下,可以直接使用要导航到的片段的 id,而不是通过安全参数或其 id 来指向操作本身。
在这种情况下,如果您想传递参数,则必须通过捆绑包以老式方式进行。
Bundle args = new Bundle();
args.putString(ID_ARG, arg);
Navigation.findNavController(getView()).navigate(R.id.fragmentId, args);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4754 次 |
| 最近记录: |