kotlin supportFragmentManager.inTransaction 找不到.inTransaction 方法
时间: 2023-08-19 11:17:22 浏览: 184
kotlin_in_action
在Kotlin中,`inTransaction`方法不是FragmentManager的内置方法。它是一个自定义的扩展函数,需要在你的代码中定义。你可以按照以下方式定义这个扩展函数:
```kotlin
inline fun FragmentManager.inTransaction(func: FragmentTransaction.() -> Unit) {
val transaction = beginTransaction()
transaction.func()
transaction.commit()
}
```
这个扩展函数接受一个lambda表达式作为参数,lambda表达式的接收者是`FragmentTransaction`对象。在lambda表达式中,你可以执行所有的Fragment事务操作,比如添加、替换、移除等。最后,调用`commit`方法提交事务。
这样,你就可以使用`inTransaction`方法来简化Fragment事务的操作了。例如,你可以这样使用:
```kotlin
supportFragmentManager.inTransaction {
add(R.id.frameLayoutContent, fragment)
}
```
这样就可以将Fragment添加到Activity中了。希望这个解答对你有帮助![1][2]
阅读全文