use*_*103 4 android android-layout android-alertdialog android-5.0-lollipop
我是一个相对较新的Android开发人员,遇到了一个我不知道如何纠正的问题,并希望你们可以提供建议!
在Kitkat及以下,当我创建一个具有2个按钮的AlertDialog时,如果两个按钮的文本超出按钮的长度,它们的文本将会换行.但是,在L中,文本拒绝适合.
Android 4.4:

Android L:

我找到了其他一些人遇到这个问题并寻找解决方案的例子,所以我开始探索为他们提供的解决方案
https://github.com/hotchemi/Android-Rate/issues/40
根据答案,结论似乎是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>
Run Code Online (Sandbox Code Playgroud)
不幸的是,我在棒棒糖Alertdialog中看不到任何明显的变化,我仍然不太熟悉布局值以查看可能出错的地方.
所以经过一段时间的探索后,我想我会问:有谁知道如何制作类似于Android 4.4的Android L按钮文字自动换行?
谢谢!
如上所述,新设计指南明确指出对话应该有清晰简洁的文本,让用户快速做出决定.因此,不鼓励长期采取长期行动.
然而,从Lollipop开始,一种新的设计模式已被允许容纳更大的文本.看看这里,向下滚动到Stacked全宽按钮.基本上,您可以将按钮放在堆栈中,并使用完整的对话框宽度.它并不能解决您的问题,因为您仍然只能使用全宽,但可以提供帮助.
至于如何做到这一点,我认为该AlertDialog课程并没有提供这方面的简单方法.一些建议:
positive和negative按钮,只需为没有按钮的对话框设置自定义视图.在该视图中,您可以拥有标题,消息和所需的所有按钮.forceStacking(),您可以阅读.它很容易实现.| 归档时间: |
|
| 查看次数: |
1867 次 |
| 最近记录: |