Android AlertDialog按钮没有用棒棒糖包装

Android AlertDialog按钮没有用棒棒糖包装,android,android-layout,android-5.0-lollipop,android-alertdialog,Android,Android Layout,Android 5.0 Lollipop,Android Alertdialog,我是一个相对较新的Android开发人员,遇到了一个我真的不知道如何纠正的问题,我希望你们能够提供建议 在Kitkat和下面的版本中,当我创建一个包含两个按钮的AlertDialog时,如果两个按钮的文本都超出了按钮的长度,那么它们的文本将自动换行。然而,在L中,文本不适合 安卓4.4: 安卓L: 我还发现了一些其他的例子,说明人们有这个问题并在寻找解决方案,所以我开始研究为他们提供的解决方案 根据答案,结论似乎是alertdialog的自定义样式 我创建了一个values-v21文件夹

我是一个相对较新的Android开发人员,遇到了一个我真的不知道如何纠正的问题,我希望你们能够提供建议

在Kitkat和下面的版本中,当我创建一个包含两个按钮的AlertDialog时,如果两个按钮的文本都超出了按钮的长度,那么它们的文本将自动换行。然而,在L中,文本不适合

安卓4.4:

安卓L:

我还发现了一些其他的例子,说明人们有这个问题并在寻找解决方案,所以我开始研究为他们提供的解决方案

根据答案,结论似乎是alertdialog的自定义样式

我创建了一个values-v21文件夹,其中有一个styles.xml。从上面看,它如下所示:

<resources>      

    <style name="AppBaseTheme" parent="android:Theme.Material.Light">
        <item name="android:alertDialogTheme">@style/CustomAlertDialogStyle</item>
    </style>

    <style name="CustomAlertDialogStyle" parent="android:Theme.Material.Light.Dialog.Alert">
        <item name="android:buttonBarButtonStyle">@style/CustomButtonBarButtonStyle</item>
        <item name="android:buttonBarStyle">@style/CustomButtonBarStyle</item>
    </style>

    <style name="CustomButtonBarStyle" parent="@android:style/Widget.Material.Light.ButtonBar.AlertDialog">
        <item name="android:layout_width">match_parent</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:height">@null</item>
        <item name="android:minHeight">@null</item>
    </style>

    <style name="CustomButtonBarButtonStyle" parent="@android:style/Widget.Material.Light.Button.Borderless.Colored">
        <item name="android:layout_width">0dp</item>
        <item name="android:layout_weight">1</item>
    </style>

</resources>

@样式/自定义AlertDialogStyle
@样式/自定义按钮按钮样式
@样式/自定义按钮样式
匹配父项
包装内容
@空的
@空的
0dp
1.
不幸的是,我在lollipop Alertdialog中并没有看到任何可见的变化,而且我对布局值还不够熟悉,看不出哪里可能出错

所以在闲逛了一段时间后,我想我会问:有人知道如何让Android L按钮的文字包装与Android 4.4相似吗


谢谢

如前所述,新的设计指南明确规定对话框应该有清晰简洁的文本,以便用户快速做出决定。因此,长时间的行动是不被鼓励的

然而,从棒棒糖开始,一种新的设计模式被允许容纳更大的文本。查看并向下滚动至堆叠的全宽按钮。基本上,您可以将按钮放在堆栈中,并使用完整的对话框宽度。这并不能解决您的问题,因为您仍然被限制在全宽范围内,但可以提供帮助

至于如何做到这一点,我认为
AlertDialog
类在这方面并没有提供简单的方法。一些建议:

  • 忘记
    正面
    负面
    按钮,只需为根本没有按钮的对话框设置自定义视图。在该视图中,您可以拥有标题、消息和所有您想要的按钮
  • 使用这个很棒的对话框,它将在旧设备上为您的对话框提供一种全新的设计,并提供一种方便的方法,称为
    forceStacking()
    ,如您所知。它很容易实现

    • 我也面临类似的问题。我使用的是android.app.AlertDiaglog。刚换了衣服 导入到android.support.v7.app.AlertDialog


      支持导入发挥了神奇的作用。

      从官方设计指南的角度来看,它们都是不好的示例。很有趣。我试图实现的目标是向用户呈现一条消息,并接受用户的肯定或否定。我希望能够使用alertdialog来实现这一点,但是如果这不是alertdialog的适当使用,您有什么更好的方法的建议吗?任何建议都将不胜感激!然后按钮文本应为“继续”和“取消”。它们要求对话框按钮清晰简洁。您有一个标题和一条消息(如果没有必要,请不要使用)让用户了解发生了什么。啊,我明白了。这是有道理的。这是一个遗憾,因为应用程序的设计者要求按钮上有很长的文字,所以我无法回避,但我完全理解你的意思。现在有了更多的道理,为什么这不是一个更广泛的问题,或者到目前为止还没有给出太多的答案。它在这方面的工作基本上满足了我的需求!这里的信息将帮助我找到解决问题的正确途径。非常感谢:)