我正在Kotlin中进行主/明细流活动。我有一个片段不匹配的问题,因为在一个活动中我需要android.support.v4.app.Fragment和在另一个android.app.Fragment中。我实现了自己的详细信息片段,并继承自android.support.v4.app.Fragment来修复ListActivity的supportFragmnet事务中的不匹配
if (mTwoPane) {
val fragment = GraphDetailFragment().apply {
arguments = Bundle().apply {
putString(GraphDetailFragment.ARG_ITEM_ID, item.id)
}
}
supportFragmentManager
.beginTransaction()
.replace(R.id.graph_detail_container, fragment)
.commit()
}
但是然后我在DetailActivity的fragmentManager中不匹配
val fragment = GraphDetailFragment().apply {
arguments = Bundle().apply {
putString(GraphDetailFragment.ARG_ITEM_ID,
intent.getStringExtra(GraphDetailFragment.ARG_ITEM_ID))
}
}
fragmentManager.beginTransaction()
.add(R.id.graph_detail_container, fragment)
.commit()
和控制台抛出:
以下任何一个函数都不能通过参数调用 提供:公共抽象乐趣add(p0:片段!,p1:字符串!): FragmentTransaction!在android.app.FragmentTransaction公共中定义 抽象乐趣add(p0:Int,p1:Fragment!):FragmentTransaction!定义的 在android.app.FragmentTransaction
中
有什么简单的方法可以解决此问题吗?
答案 0 :(得分:1)
使DetailActivity
扩展AppCompatActivity
,然后在其中使用supportFragmentManager
。
您还需要在styles.xml中修复您的AppTheme。确保parent
属性指向Theme.AppCompat
或Theme.AppCompat.Light
。