package com.igo.user.dialog import android.os.Bundle import android.view.Gravity import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.TextView import androidx.fragment.app.DialogFragment import cn.sinata.xldutils.view.WheelView import com.igo.user.R import com.igo.user.interfaces.StringCallback import org.jetbrains.anko.matchParent import org.jetbrains.anko.support.v4.find import org.jetbrains.anko.wrapContent class SingleWheelDialog : DialogFragment() { private val list = arrayListOf() //数据源 private val data by lazy { arguments?.getStringArrayList("data") } private val title by lazy { arguments?.getString("title")?:"" } private val subTitle by lazy { arguments?.getString("subTitle")?:"" } override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { return inflater.inflate(R.layout.dialog_single_wheel, container, false) } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setStyle(STYLE_NO_FRAME, R.style.Dialog) } override fun onActivityCreated(savedInstanceState: Bundle?) { super.onActivityCreated(savedInstanceState) dialog?.window?.setLayout(matchParent, wrapContent) dialog?.window?.setGravity(Gravity.BOTTOM) dialog?.setCanceledOnTouchOutside(true) } private val tv_title by lazy { find(R.id.tv_title) } private val tv_sub_title by lazy { find(R.id.tv_sub_title) } private val tv_cancel by lazy { find(R.id.tv_cancel) } private val tv_sure by lazy { find(R.id.tv_sure) } private val wv_1 by lazy { find(R.id.wv_1) } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) if (data.isNullOrEmpty()){ list.add(getString(R.string.是)) list.add(getString(R.string.否)) }else{ list.addAll(data!!) } tv_title.text = title tv_sub_title.text = subTitle wv_1.setItems(list) wv_1.setSeletion(0) tv_cancel.setOnClickListener { dismiss() } tv_sure.setOnClickListener { callback?.onRlt(wv_1.seletedItem) dismiss() } } private var callback: StringCallback? = null fun setCallback(callback: StringCallback) { this.callback = callback } }