0

今日、私はこれが可能かどうか疑問に思っています。つまり、子ビューをロードすると、親ビューが送信されます。言い換えれば、私は子供にいるときに親を扱いたいと思っています。

親ビュー

  imgFilter.setOnClickListener {
            MyDialogFragment().show(requireActivity().supportFragmentManager,"filter_dialog")
        }

子ビュー

class MyDialogFragment : BottomSheetDialogFragment() {
    override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
    val dialog = super.onCreateDialog(savedInstanceState) as BottomSheetDialog

    val view = View.inflate(context, R.layout.filter_sheet_layout, null)

    val linearLayout = view.findViewById<LinearLayout>(R.id.root)
    val params = linearLayout.layoutParams as LinearLayout.LayoutParams
    params.height = getScreenHeight()
    linearLayout.layoutParams = params

    backArrowClick(view)
    hideKeyboard()


    dialog.setContentView(view)
    mBehavior = BottomSheetBehavior.from(view.parent as View)

    parentFragment?.view?.findViewById<TextView>(R.id.name_store)?.text = "Hello World"

    return dialog
}
}

それが可能かどうか、または別の提案があれば、私は聞いて学ぶためにここにいます。

どうもありがとう!

4

1 に答える 1

1

問題は、showメソッドがアクティビティからフラグメント マネージャーを引数として受け取っているため、親フラグメントが見つからないことです。

MyDialogFragment().show(childFragmentManager, "filter_dialog")

見つけられるようにparentFragment?.view?する必要があります。

于 2020-11-20T20:02:50.833 に答える