键盘打开时Android alertdialog未居中

键盘打开时Android alertdialog未居中,android,kotlin,android-alertdialog,Android,Kotlin,Android Alertdialog,我有一个带有自定义视图的AlertDialog,其中包含两个EditText字段。在某些情况下,将使用以下代码显示该对话框: val builder = AlertDialog.Builder(this) builder .setView(R.layout.dialog) .setMessage("message") .setPositiveButton("Oke"){ dialog, id -> println("oke")} .setNe

我有一个带有自定义视图的AlertDialog,其中包含两个EditText字段。在某些情况下,将使用以下代码显示该对话框:

val builder = AlertDialog.Builder(this)
    builder
     .setView(R.layout.dialog)
     .setMessage("message")
     .setPositiveButton("Oke"){ dialog, id -> println("oke")}
     .setNegativeButton("Cancel"){ dialog, id -> println("cancel")}

val dialog = builder.create()
    dialog.show()
当用户按下编辑文本时,软键盘会显示,但对话框不会向上移动。我尝试过将dialog.window的softinputmode设置为SOFT\u INPUT\u ADJUST\u PAN或SOFT\u INPUT\u ADJUST\u RESIZE,如下所示

dialog.window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN)
但这似乎没有任何作用。

试试这个:

dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);

显示AlertDialog的活动具有半透明的状态栏主题

因此,与使用使用上下文主题的classic AlertDialog.builder(此)初始化生成器不同,您可以使用没有半透明状态栏的对话框主题:

val builder = AlertDialog.Builder(this, android.R.style.Theme_DeviceDefault_Light_Dialog_NoActionBar)

这个主题也确保了与棒棒糖前的设备的兼容性,但是像android.R.style.theme\u Material\u Dialog这样的其他设备也应该做到这一点。

对不起,我的坏朋友在我的示例中犯了一个错误。忘记了窗口部分。我刚刚用您提供的代码创建了一个新项目,当键盘显示时,对话框向上移动,它似乎对我来说工作得很好。可能由于某些活动/片段设置或根布局,对话框未居中。