【发布时间】:2021-12-10 14:04:13
【问题描述】:
我的 Kotlin 代码中有两个片段。 当我按下一些按钮时,第一个片段将膨胀第二个片段。 显示第二个片段并且一切正常,但是当我按下后退按钮时,电话将转到主页(应用程序已最小化),当我点击最近查看的应用程序时打开屏幕上所有打开的应用程序并选择我的应用程序(即打开的),然后应用程序返回到 Fragment Alike 它的假设。
但我不明白为什么单击后退按钮时应用程序会最小化? 我只是希望它返回到片段 A 并且不要最小化应用程序。
这是膨胀第二个片段的代码:
val fragment2 = details_frag()
val fragmentManager: FragmentManager? = fragmentManager
val fragmentTransaction: FragmentTransaction =
fragmentManager!!.beginTransaction()
if (resources.configuration.orientation == Configuration.ORIENTATION_LANDSCAPE) {
fragmentTransaction.apply {
replace(R.id.fragSec, fragment2)
commit()
}
} else {
fragmentTransaction.apply {
replace(R.id.flFragment, fragment2)
commit()
}
}
主 Activity 中为第一个片段充气的代码是:
if (resources.configuration.orientation == Configuration.ORIENTATION_LANDSCAPE) {
supportFragmentManager.beginTransaction().apply {
replace(R.id.fragLand, firstFrag)
commit()
}
supportFragmentManager.beginTransaction()
.add(
R.id.fragSec,
details_frag::class.java,
null
) // .addToBackStack(null)
.commit()
} else {
supportFragmentManager.beginTransaction().apply {
replace(R.id.flFragment, firstFrag)
commit()
}
}
我在这里没有看到什么不寻常的地方,一切都很好,但是当我从第二个片段转到第一个片段时,它只是最小化了我的应用程序...... (如您所见,第一个插入到 Main Activity 中,当有人单击我的代码中的某些内容时,我只是将第一个片段与第二个片段交换...)
谢谢!!!
【问题讨论】:
-
也许使用
add而不是replace? -
这个问题有帮助吗? stackoverflow.com/questions/18634207/…
-
我将其更改为添加,这是做同样的事情...最小化应用程序
标签: android kotlin back onbackpressed