问题描述
我目前正在尝试在 kotlin 的 Dialogfragment 中创建一个 viewpager。 viewpager 会像旋转木马一样显示各种片段。但是,viewPager 没有加载,显示为空白,有人可以帮我改正吗? :)
对话片段:
class mapaInformacion : DialogFragment() {
/**
* The pager widget,which handles animation and allows swiping horizontally to access prevIoUs
* and next wizard steps.
*/
private lateinit var mPager: ViewPager
private var _binding: FragmentMapaInformacionBinding?= null
private val binding get() = _binding!!
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
}
override fun onCreateView(inflater: LayoutInflater,container: ViewGroup?,savedInstanceState: Bundle?): View? {
//return super.onCreateView(inflater,container,savedInstanceState)
dialog?.window?.setBackgroundDrawableResource(R.drawable.round_corner)
_binding = FragmentMapaInformacionBinding.inflate(inflater,false)
val view = binding.root
return view
}
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
return super.onCreateDialog(savedInstanceState)
mPager = dialog!!.findViewById(R.id.pager)
val pagerAdapter = ScreenSlidePagerAdapter(childFragmentManager)
mPager.adapter = pagerAdapter
}
override fun onStart() {
super.onStart()
val width = (resources.displayMetrics.widthPixels * 0.90).toInt()
val height = (resources.displayMetrics.heightPixels * 0.60).toInt()
dialog!!.window?.setLayout(width,/*ViewGroup.LayoutParams.WRAP_CONTENT*/height)
}
override fun onDestroy() {
super.onDestroy()
_binding = null
}
private inner class ScreenSlidePagerAdapter(fm: FragmentManager) : FragmentStatePagerAdapter(fm) {
override fun getCount(): Int = NUM_PAGES
override fun getItem(position: Int): Fragment = ayudaQR()
}
}
为了在屏幕上显示对话框片段,我在其他活动中使用了下一行代码:
mapaInformacion().show(supportFragmentManager,"mapaInformacion")
对话框片段 XML:
<androidx.viewpager.widget.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".UI.AlertDialog.mapaInformacion" />
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)