请注意,此问题与以下内容不重复:
此外,之前曾提出过另一个类似的问题,但是没有提到方向变化(并且没有得到解决).
如果我不切换方向,我的onActivityResult方法Fragment会被调用.但是,如果我按照这些步骤操作,则不会调用它:
startActivityForResult(new Intent(MediaStore.ACTION_IMAGE_CAPTURE), Constants.REQ_CODE_IMAGE_CAPTURE);onActivityResult仍然在父FragmentActivity中调用.但是,由于这个警告,我得到:
W/FragmentActivity(4418): Activity result no fragment exists for index: 0x22d73
Run Code Online (Sandbox Code Playgroud)
...我的猜测是由于方向改变导致父母被摧毁,并且在重新创建之后,无法找到首先Fragment调用startActivityForResult的内容.
这是一个框架错误吗?怎么能解决这个问题?
编辑:由于受欢迎的需求,添加了更多代码.
FragmentActivity.java:
...
fragment = new ExampleFragment();
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace (R.id.mainContentView, fragment);
if (clearBackStack) {
// clear the back stack
while (getSupportFragmentManager().popBackStackImmediate ());
// add the current transaction to the back stack
transaction.addToBackStack (null);
}
else {
transaction.addToBackStack(null);
}
transaction.commit();
... …Run Code Online (Sandbox Code Playgroud) 我在我的一个应用程序中使用了新的android导航框架。该应用程序的目的是充当启动器。
有时,当我尝试更改片段(使用navcontroller导航)时,它不会更改片段,而是记录
Ignoring navigate() call: FragmentManager has already saved its state
Run Code Online (Sandbox Code Playgroud)
我知道在这里忽略Navigation()调用之前曾问过这个问题:FragmentManager已经保存了状态, 但是没有解决方案。
我正在使用以下代码进行导航:
Navigation.findNavController(view).navigate(R.id.action_next,bundle)
navigation android android-fragments android-studio android-architecture-components