我附上了标题内容的图片,对话框的标题被截断了,我不明白为什么,我看到一些警报对话框只适用于 2 行,这是问题所在吗?
private fun remindAcceptOrders(newStatus: OrderStatus, orderDetails: OrderDetails) {
val dialog = AlertDialog.Builder(requireContext(), R.style.AlertDialogTheme)
.setTitle(
getString(R.string.acceptMessage2)
)
.setPositiveButton(R.string.acceptorder) { dialog, _ ->
newStatus == ACCEPTED
showNewStatusConfirmationPopup(ACCEPTED, orderDetails)
dialog.dismiss()
}
.setNegativeButton(R.string.exit) {
dialog, _ -> dialog.dismiss()
navc!!.navigate(R.id.action_orderDetailsFragment_to_orderListFragment)
}
.setMessage(
getString(R.string.acceptMessage1)
)
.create()
dialog.show()
val textView = dialog.findViewById<View>(android.R.id.message) as TextView?
textView!!.textSize = 15f
textView!!.maxLines = 3[enter image description here][1]
}
这可以使用自定义标题来解决
TextView
val customeTv = TextView(context);
textView.setText(getString(R.string.acceptMessage2));
val dialog = AlertDialog.Builder(requireContext(), R.style.AlertDialogTheme)
.setCustomTitle(textView)
...
如文档中所述,自定义标题允许您进行任何所需的修改
方法 setTitle(int) 和 setIcon(int) 应该足够了 大多数标题,但如果标题需要更多,则提供此选项 定制。使用它将替换通过设置的标题和图标 其他方法。
您可以创建自定义警报,以便您的文本完全显示为您想要的,请点击以下链接: 如何在android中创建自定义对话框?
无需使用自定义标题或对话框视图。
如果您正在使用
androidx.appcompat.app.AlertDialog
:
// Prevent dialog title's from being cut after two lines
dialog.findViewById<TextView>(androidx.appcompat.R.id.alertTitle)?.let {
it.maxLines = 99
it.setHorizontallyScrolling(false)
}
如果您正在使用
android.app.AlertDialog
:
// Prevent dialog title's from being cut after two lines
val titleId: Int = context.resources.getIdentifier("alertTitle", "id", "android")
if (titleId > 0) {
dialog.findViewById<TextView>(titleId)?.let {
it.maxLines = 99
it.setHorizontallyScrolling(false)
}
}