警报对话框标题被截断并仅显示点(如何在 strings.xml 中调整标题大小?)

问题描述 投票:0回答:3

我附上了标题内容的图片,对话框的标题被截断了,我不明白为什么,我看到一些警报对话框只适用于 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]
        }
android xml kotlin android-alertdialog
3个回答
0
投票

这可以使用自定义标题来解决

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) 应该足够了 大多数标题,但如果标题需要更多,则提供此选项 定制。使用它将替换通过设置的标题和图标 其他方法。


0
投票

您可以创建自定义警报,以便您的文本完全显示为您想要的,请点击以下链接: 如何在android中创建自定义对话框?


0
投票

无需使用自定义标题或对话框视图。

如果您正在使用

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)
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.