【发布时间】:2018-03-29 14:27:25
【问题描述】:
我是 Kotlin 的新手。我写这个代码块是为了在后台堆栈中没有片段时添加一个片段。然而,我的代码块看起来有点笨拙。能不能写得更好?
with(supportFragmentManager) {
takeIf { backStackEntryCount == 0 }
?. apply {
with(beginTransaction()) {
add(R.id.container, FirstFragment())
commit()
}
}
}
此外,with(beginTransaction()) 向我显示了 lint 警告,即事务应提交 ()。我认为这与我对它的错误实施有关。请告诉我如何消除该 lint 警告。
编辑 1
不在这里,但在某些地方,我确实与 add() 一起执行了一些其他操作。诸如将片段添加到 backstack 并提供自定义转换之类的东西。
activity?.supportFragmentManager?.let {
with(it.beginTransaction()) {
setCustomAnimations(R.anim.slide_in_left, R.anim.slide_out_left,
R.anim.slide_in_right, R.anim.slide_out_right)
addToBackStack("second")
replace(R.id.container, SecondFragment())
commit()
}
}
现在有一些方法需要在 FragmentTransaction 对象上调用。这个比较适合我的情况。
【问题讨论】: