Espresso:无法启动内部片段
Espresso: Not able to launch inner fragment
我正在使用 launchFragmentInContainer<FragmentOne>()
启动片段并能够使用 EspressoMatchers
执行操作,一切正常。
但是当我想启动另一个 fragment onClick Of button(此代码在 FragmentOne
内)但是启动时出现 FragmentTwo 错误
示例:
onClick {
val fragment = FragmentTwo.newInstance()
val transaction = requireActivity().supportFragmentManager.beginTransaction()
transaction.add(fragmentContainerID, fragment)
transaction.commit()
}
以上代码给出错误java.lang.IllegalArgumentException: No view found for id 0x4d2 (unknown) for fragment FragmentTwo{bc39d06} (6f4636b5-f441-4e38-956a-47ac91d261bc) id=0x4d2}
如何解决这个内部片段?或者我必须在浓缩咖啡测试中做点什么。
这个问题是由于 fragmentContainerID
引起的,它应该是唯一的并且在 launchFragmentInContainer()
的幕后使用。
因此,在 espresso 框架内 android.R.id.content
用作 fragment Id
。片段交易时应使用相同的 ID。
代码段:
var fragmentContainerID = android.R.id.content // It will do the trick and fragment will be added on top of stack
我正在使用 launchFragmentInContainer<FragmentOne>()
启动片段并能够使用 EspressoMatchers
执行操作,一切正常。
但是当我想启动另一个 fragment onClick Of button(此代码在 FragmentOne
内)但是启动时出现 FragmentTwo 错误
示例:
onClick {
val fragment = FragmentTwo.newInstance()
val transaction = requireActivity().supportFragmentManager.beginTransaction()
transaction.add(fragmentContainerID, fragment)
transaction.commit()
}
以上代码给出错误java.lang.IllegalArgumentException: No view found for id 0x4d2 (unknown) for fragment FragmentTwo{bc39d06} (6f4636b5-f441-4e38-956a-47ac91d261bc) id=0x4d2}
如何解决这个内部片段?或者我必须在浓缩咖啡测试中做点什么。
这个问题是由于 fragmentContainerID
引起的,它应该是唯一的并且在 launchFragmentInContainer()
的幕后使用。
因此,在 espresso 框架内 android.R.id.content
用作 fragment Id
。片段交易时应使用相同的 ID。
代码段:
var fragmentContainerID = android.R.id.content // It will do the trick and fragment will be added on top of stack