【问题标题】:Material dialog is not displaying buttons corectlly材质对话框未正确显示按钮
【发布时间】:2022-10-24 04:30:38
【问题描述】:

当应用程序通过 MaterialAlertDialogBu​​ilder 显示带有长文本的对话框时,某些设备上的按钮会被裁剪。

我的代码:

            MaterialAlertDialogBuilder(requireContext())
            .setTitle(getString(R.string.placeholder))
            .setMessage(getString(R.string.lorem_ipsum))
            .setPositiveButton(getString(R.string.ok)) { dialog, _ ->
                dialog.dismiss()
            }
            .show()

如何使它们正确显示?

Screenshot Screenshot from another device

【问题讨论】:

  • 这些例子是否表明实际使用?我的意思是消息的长度。对话框不一定用于像这样的长文本。如果您希望消息可滚动,我认为您将需要自定义布局。
  • 我想将对话框用作某些操作的信息选项卡。我也考虑过使用自定义布局,但我想知道如果没有它,那么长的消息是否可以滚动。感谢您为我解决这个问题
  • @Czapla 如果您在列表底部滚动时底部的按钮被剪断,这可能意味着其他东西正在推动内容,我猜它与标题有关。我建议检查对话框窗口,您应该能够确定问题的原因,因为即使您添加了可滚动区域,您也可能会遇到同样的问题。如果你还是卡住了,请创建一个codesandbox

标签: android material-ui dialog


【解决方案1】:

正如 TheLibrarian 提到的,对于较长的文本,您需要包含可滚动的自定义布局。但是您仍然可以使用 AlertDialog.Builder 并使用可滚动的 TextView 布局调用 setView() :

https://developer.android.com/develop/ui/views/components/dialogs#CustomLayout

【讨论】:

    【解决方案2】:

    最后我得到了一个解决方案——它恰好是由我的主题文件中的windowTranslucentStatus 引起的,多亏了这个,我能够继续使用带有setMessage 方法的对话框来处理长消息。

    【讨论】:

      猜你喜欢
      • 2017-12-19
      • 2019-04-13
      • 2017-06-14
      • 2014-08-22
      • 2015-05-23
      • 1970-01-01
      • 2017-10-07
      • 2018-02-05
      • 2016-08-26
      相关资源
      最近更新 更多