在优化棒棒糖材质主题应用程序时,我遇到了这个恼人的问题:
每当对话框按钮上有长文本时,如果文本不适合按钮栏的总宽度,则这些按钮的文本不会像以前的主题那样换行为多行。相反,以下按钮被挤出对话框,无法访问(见下图)。
Screenshot:
到目前为止,我在这个问题上花了很多时间,我在互联网上可以找到的唯一关于这个问题的主题是:https://code.google.com/p/android/issues/detail?id=78302 https://code.google.com/p/android/issues/detail?id=78302
所以我听取了那里的建议并在这里提出了这个问题..
我尝试过查看源代码(按钮是用 maxLines = 2 定义的)并更改buttonBarStyle 和buttonBarButtonStyle 上的不同参数,但没有成功。
我正在寻找一个简单的样式解决方案,因此不想使用第三方库。
这可能只是模拟器问题?我不这么认为。
非常感谢您的帮助。提前致谢。
Edit:后续请参阅我自己 12 月 3 日的回答,这不是解决方案。
可以通过使用堆叠按钮而不是行按钮来解决此问题。这是我的解决方法,如何使用 AppCompat lib 来实现:
Code导入 android.support.v7.app.AlertDialog;
AlertDialog.Builder builder;
builder = new AlertDialog.Builder(context, R.style.StackedAlertDialogStyle);
builder.setTitle("Title");
builder.setMessage("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc dignissim purus eget gravida mollis. Integer in auctor turpis. Morbi auctor, diam eget vestibulum congue, quam arcu pulvinar dui, blandit egestas erat enim non ligula." +
" Nunc quis laoreet libero. Aliquam consectetur nibh eu arcu eleifend efficitur.");
builder.setPositiveButton("Positive Button", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
builder.setNeutralButton("Neutral Button", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
builder.setNegativeButton("Cancel Button", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
AlertDialog alertDialog = builder.create();
alertDialog.show();
try{
final Button button = alertDialog.getButton(AlertDialog.BUTTON_POSITIVE);
LinearLayout linearLayout = (LinearLayout) button.getParent();
linearLayout.setOrientation(LinearLayout.VERTICAL);
} catch(Exception ex){
//ignore it
}
Style
<style name="StackedAlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert">
<item name="buttonBarButtonStyle">@style/StackedButtonBarButtonStyle</item>
</style>
<style name="StackedButtonBarButtonStyle" parent="Widget.AppCompat.Button.ButtonBar.AlertDialog">
<item name="android:layout_gravity">right</item>
</style>
Result
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)