Android 浓缩咖啡:无法启动内部碎片
我正在使用Android 浓缩咖啡:无法启动内部碎片,android,android-fragments,android-espresso,Android,Android Fragments,Android Espresso,我正在使用launchFragmentInContainer()启动片段,并能够使用EspressoMatchers执行操作,一切正常 但是,当我想在单击按钮时启动另一个片段(此代码在FragmentOne中),但在启动FragmentTwo时却得到一个错误时,问题就出现了 例如: onClick { val fragment = FragmentTwo.newInstance() val transaction = requireActivity().suppo
launchFragmentInContainer()
启动片段,并能够使用EspressoMatchers
执行操作,一切正常
但是,当我想在单击按钮时启动另一个片段(此代码在FragmentOne
中),但在启动FragmentTwo时却得到一个错误时,问题就出现了
例如:
onClick {
val fragment = FragmentTwo.newInstance()
val transaction = requireActivity().supportFragmentManager.beginTransaction()
transaction.add(fragmentContainerID, fragment)
transaction.commit()
}
上述代码给出错误java.lang.IllegalArgumentException:未找到片段片段2{bc39d06}(6f4636b5-f441-4e38-956a-47ac91d261bc)id=0x4d2}的id 0x4d2(未知)视图
如何解析这个内部片段?或者我必须在浓缩咖啡测试中做些什么。这个问题是由于
fragmentContainerID
而产生的,它应该是唯一的,并在launchFragmentInContainer()的引擎罩下使用
因此,在espresso框架内,android.R.id.content
被用作片段id
。在执行片段事务时,应使用相同的id
代码片段:
var fragmentContainerID = android.R.id.content // It will do the trick and fragment will be added on top of stack