因此,我遇到了一个奇怪的问题,其中片段A被另一个片段B取代,但是在替换片段A之后,屏幕变成空白,只有在旋转屏幕或应用程序来自背景后,片段B才会显示出来。我在片段B oncreateView中添加了日志,它们正在被调用,但未显示该片段。我似乎无法弄清楚这里可能是什么问题
这是片段替换的代码
GlobalScope.async(Dispatchers.Main) {
val testfragment= TestFragment()
supportFragmentManager.beginTransaction().
replace(R.id.fragmelayout,testfragment, "test").commit()
}
编辑A:
所以我知道是什么引起了问题,但仍然很困惑,因为它不应该发生 片段A中的视图中有一个recyclerview,一旦我将其注释为按预期过渡,就可以将片段A替换为片段B,而片段B则是第一次显示
这是xml中的recyclerview
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/personal_bluetooth_recyclerview"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:orientation="horizontal" />
这是在
中填充的recyclerviewbluetoothDeviceRecyclerView = view.findViewById(R.id.personal_bluetooth_recyclerview)
bluetoothDeviceRecyclerViewAdapter = PersonalBluetoothRecyclerViewAdapter(mListLeDevice, isDebugMode, this)
bluetoothDeviceRecyclerView.layoutManager = LinearLayoutManager(context, RecyclerView.HORIZONTAL, false)
bluetoothDeviceRecyclerView.adapter = bluetoothDeviceRecyclerViewAdapter
bluetoothDeviceRecyclerView.setHasFixedSize(true)
bluetoothDeviceRecyclerView.setItemViewCacheSize(20)
bluetoothDeviceRecyclerView.isDrawingCacheEnabled = true
bluetoothDeviceRecyclerView.drawingCacheQuality = View.DRAWING_CACHE_QUALITY_HIGH