gpt4 book ai didi

java - 按下后退按钮时,上一个 fragment 显示空白屏幕(使用多个 fragment 事务)

转载 作者:行者123 更新时间:2023-12-01 18:50:03 24 4
gpt4 key购买 nike

我有一个 Activity ,在平板电脑上同时显示两个 fragment ,在手机上一次显示一个 fragment 。因为我正在为平板电脑和 Android 制作应用程序,所以我必须将 fragment 之间的导航功能分离到单独的函数“displaySecondFragmentOnHandset()”中。

在较小的手机上,当从第一个 fragment 移动到第二个 fragment ,然后尝试返回第一个 fragment 时,屏幕为空白。

我的 Activity :

    class CentralActivity : AppCompatActivity() {

val manager = supportFragmentManager
var firstFrag : FirstFrag? = null

override fun onCreate(savedInstanceState: Bundle?) {

...

var ft: FragmentTransaction = manager.beginTransaction();

firstFrag = FirstFrag.newInstance()
ft.add(R.id.real_container, firstFrag!!, "firstFrag")

if (screenLayoutSize >= Configuration.SCREENLAYOUT_SIZE_LARGE) {
var secondFrag = SecondFrag.newInstance()
ft.add(R.id.real_container, secondFrag, "secondFrag")
}
ft.commit()
}

fun displaySecondFragmentOnHandset (){
var secondFrag = SecondFrag.newInstance()
var ft: FragmentTransaction = manager.beginTransaction();
ft!!.replace(R.id.real_container, secondFrag).addToBackStack("secondFrag").commit()
}

然后在我的 FirstFragemnt 中,如果我使用的是较小的手机,我会:

    class FirstFragemnt : Fragment() {
private var viewModel: SharedViewModel? = null

fun goToSecondFragment(){
if (screenLayoutSize!! < Configuration.SCREENLAYOUT_SIZE_LARGE) {

viewModel!!.setMsgInCommunicator(collection)
var centralActivity: CentralActivity = activity as CentralActivity
centralActivity.displaySecondFragmentOnHandset()
}
}

问题是当我按后退按钮转到第一个 fragment 时,屏幕一片空白。

最佳答案

在CentralActivity中替换

ft!!.replace(R.id.real_container, secondaryFrag).addToBackStack("secondFrag").commit()

ft!!.add(R.id.real_container, secondaryFrag).addToBackStack("secondFrag").commit()

关于java - 按下后退按钮时,上一个 fragment 显示空白屏幕(使用多个 fragment 事务),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59755352/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com