代码之家  ›  专栏  ›  技术社区  ›  wbk727

如何访问DialogFragment中膨胀的自定义视图

  •  0
  • wbk727  · 技术社区  · 5 年前

    DialogFragment . inflater container 似乎尚未解决,但当我将这些添加到 onCreateDialog ,在 overrides nothing 返回错误。在这种情况下,正确的解决方案是什么?

    class MyDialogFragment : DialogFragment() {
        override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
            val builder = AlertDialog.Builder(activity)
            val rootView = inflater.inflate(R.layout.dialog_sample, container, false)
    
            lateinit var tabLayout: TabLayout
            lateinit var viewPager: ViewPager
    
            builder.setIconAttribute(R.attr.imgNight)
            builder.setTitle("My Program")
            builder.setView(rootView)
            builder.setPositiveButton(getString(R.string.ok)) { dialog, _ -> dialog.dismiss() }
    
            tabLayout = rootView.findViewById(R.id.tabLayout)
            viewPager = rootView.findViewById(R.id.viewPager)
    
            val adapter = CustomAdapter(childFragmentManager)
            adapter.addFragment("Boy", CustomFragment.createInstance("Oscar"))
            adapter.addFragment("Girl", CustomFragment.createInstance("Stacy"))
            adapter.addFragment("Robot", CustomFragment.createInstance("Aeon"))
            viewPager.adapter = adapter
            tabLayout.setupWithViewPager(viewPager)
    
            return builder.create()
        }
    }
    
    1 回复  |  直到 5 年前
        1
  •  0
  •   wbk727    5 年前

    这个 container 由于没有父视图,因此传递null。至于 inflater 使用 LayoutInflater.from(requireContext)

    然后可以使用对话框生成器中的视图。