Android 8.1中未显示对话框按钮
我有一个自定义的Android 8.1中未显示对话框按钮,android,android-layout,kotlin,android-alertdialog,android-styles,Android,Android Layout,Kotlin,Android Alertdialog,Android Styles,我有一个自定义的AlertDialog类,其中我有多个函数,在init上调用这些函数取决于输入。它将创建带有自定义布局的自定义AlertDialog,并设置按钮及其侦听器。然后它将显示一个对话框。它在其中一些系统中工作,但在安卓8.1上我看不到那些默认的对话框按钮。我认为是这样的,因为自定义布局是LinearLayout,其中width和height设置为match\u parent。如果我将其设置为wrap\u content它仍然不可见 在我的AlertDialog中,布局也是Recycle
AlertDialog
类,其中我有多个函数,在init上调用这些函数取决于输入。它将创建带有自定义布局的自定义AlertDialog
,并设置按钮及其侦听器。然后它将显示一个对话框。它在其中一些系统中工作,但在安卓8.1上我看不到那些默认的对话框按钮。我认为是这样的,因为自定义布局是LinearLayout
,其中width
和height
设置为match\u parent
。如果我将其设置为wrap\u content
它仍然不可见
在我的AlertDialog中,布局也是RecyclerView
我发现了一些关于这个问题的帖子,它们可能是由于没有在样式中设置Dialog主题造成的,但这不是我的情况,因为我必须使用自定义主题来进行全屏对话
定义AlertDialog的我的一个函数:
private fun modemDialogInit(msg: Int, finish: Int, cntinue: Int){
val dialogView: View = layoutInflater.inflate(R.layout.rev_report_dialog_modem, null)
initRecyclerView(dialogView)
val radioView: RadioGroup = dialogView.findViewById(R.id.hp_radioView)
val radioOne: RadioButton = dialogView.findViewById(R.id.one_year)
setMessage(a.getString(msg))
setButton(DialogInterface.BUTTON_POSITIVE, a.getText(finish)) { _, _ ->}
setCancelButton()
if (a is ModemActivity) setNeutralButton(cntinue)
setView(dialogView)
create()
setOnShowListener {
val button = getButton(BUTTON_POSITIVE)
button.setOnClickListener {
changeDialogButtonStates(false)
val modemEndDate: Date
if (radioView.checkedRadioButtonId == radioOne.id){
modemEndDate = sdf.parse(sdf.format(Api.getDateNYearsFromNow(1)))
} else {
modemEndDate = sdf.parse(sdf.format(Api.getDateNYearsFromNow(2)))
}
if (a is ModemActivty){
modemEntity.modem.put(MODEM_REPORT_CURRENT_NUM_OF_ITEMS, modemItemsNum)
a.saveModem(
modemEndDate,
modemEntity,
this,
getButton(DialogInterface.BUTTON_POSITIVE),
getButton(DialogInterface.BUTTON_NEGATIVE),
getButton(DialogInterface.BUTTON_NEUTRAL))
} else if (a is ModemCheckedActivity){
innerModemEntity.put(MODEM_REPORT_CURRENT_NUM_OF_ITEMS, modemItemsNum)
a.saveModemChecked(
modemEndDate,
innerRModemEntity,
this,
getButton(DialogInterface.BUTTON_POSITIVE),
getButton(DialogInterface.BUTTON_NEGATIVE))
}
}
}
show()
}
这是用于my AlertDialog的主题:
<style name="DialogTheme" parent="Theme.AppCompat.Light.Dialog">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">match_parent</item>
<!-- No backgrounds, titles or window float -->
<item name="android:windowBackground">@color/colorText</item>
<item name="android:textColor">@color/colorPrimaryDark</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">false</item>
<item name="borderlessButtonStyle">@style/Widget.AppCompat.Button.Borderless.Colored</item>
</style>
匹配父项
匹配父项
@彩色/彩色文本
@颜色/原色暗
真的
假的
@style/Widget.AppCompat.Button.Borderless.Colored
预览屏幕截图:
请添加外观截图。请添加外观截图。