当显示对话框时,屏幕经常会上移,导致用户体验不佳。解决这个问题的方法是使用DialogFragment,它是一个可以管理对话框的特殊Fragment,它不会导致屏幕上移。
下面是一个示例代码:
首先,创建自定义的DialogFragment类:
class CustomDialogFragment : DialogFragment() {
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
val builder = AlertDialog.Builder(activity)
builder.setTitle("Title")
.setPositiveButton("OK") { dialog, id ->
// positive button clicked
}
.setNegativeButton("Cancel") { dialog, id ->
// negative button clicked
}
.setMessage("Message")
return builder.create()
}
}
然后在你的Activity中,使用以下代码显示对话框:
val dialog = CustomDialogFragment() dialog.show(supportFragmentManager, "CustomDialogFragment")
这将创建并显示自定义的对话框,而不会导致屏幕上移。