1.Создание Kotlin класса для диалога
class CustomDialog(
context: Context,val mCallBack: CallBack
) : Dialog(context, R.style.full_screen_dialog) {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.dialog_custom)
// YOUR COMPONENT HANDLE HERE
// FOR EXAMPLE
btn_yes.setOnClickListener {
mCallBack.onDone()
dismiss()
}
btn_cancel.setOnClickListener {
dismiss()
}
}
interface CallBack {
//YOU CAN HANDLE THIS METHOD IN YOUR CALLING ACTIVITY
fun onDone(rating: Float, comments: String)
}
}
2.Как позвонить
var mDialog: CustomDialog = CustomDialog(
this,
object : CustomDialog.CallBack {
override fun onDone() {
}
})
mDialog.show()
3. стили. xml
<style name="full_screen_dialog">
<item name="android:windowFrame">@null</item>
<item name="android:windowIsFloating">false</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
<item name="android:background">@android:color/transparent</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="colorAccent">@color/transparent</item>
</style>
Создайте свой собственный файл макета и установите его на setContentView(R.layout.dialog_custom)
, как я здесь не упоминал