Kotlin片段类型不匹配

时间:2018-09-09 11:49:46

标签: android android-fragments kotlin

我正在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

有什么简单的方法可以解决此问题吗?

1 个答案:

答案 0 :(得分:1)

使DetailActivity扩展AppCompatActivity,然后在其中使用supportFragmentManager

您还需要在styles.xml中修复您的AppTheme。确保parent属性指向Theme.AppCompatTheme.AppCompat.Light