我一直在寻找一种简单而干净的方式来改变我的AlertDialog侧边,但没有成功。为了更加清晰,我想要的是改变对话框的每个边和屏幕的边/边之间的距离。我想我的对话框,显示一个类似于那些出现在 Material Design specification如何更改Android对话框边距(到屏幕边缘的距离)?
这里是我想什么图像/从一个简单的Android AlertDialog期望,并在右边,有什么我实际上与看代码如下。
这里是我的代码。
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setMessage(message);
builder.setTitle(title);
builder.setPositiveButton(positiveId, positiveListener);
builder.show();
之前跳转到设置对话框的LayoutParams编程的显而易见的答案,让我说,我知道我可以做这样的事情,并摆脱它。
final AlertDialog dialog = builder.create();
Display display = getWindowManager().getDefaultDisplay();
int width = display.getWidth();
float dialogWidth = width - TypedValue.applyDimension(PLEX_UNIT_DIP, 2 * SIDE_MARGIN_IN_DPS, r.getDisplayMetrics());
WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
lp.copyFrom(dialog.getWindow().getAttributes());
lp.width = (int) dialogWidth;
lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
dialog.getWindow().setAttributes(lp);
dialog.show();
但我不能相信没有更容易和更清洁方式这一点,我们应该为此,我们要开一个AlertDialog每次做。我尝试将边距设置为应用于对话框的样式,但是它没有做任何操作,或者改变了对话框的内边距(内容和对话框的边/边之间的边距)。我想我正在看错误的风格。
有没有人提出过这个问题?有关如何在样式中而不是在代码中设置此边距的任何想法?
UPDATE:
这里是我的应用风格/主题:
@color/primary
@color/primary_dark
@color/accent
@color/activity_background
@color/primary_text
@color/secondary_text
@color/control_highlight
?attr/colorAccent
@style/form_spinner
@style/form_spinner
@style/form_spinner_item
@style/form_edittext
@style/form_edittext
@style/Theme.App.Dialog.Alert
这是我的alertDialogTheme
@color/primary
@color/primary
@color/activity_background
@color/primary_text
@color/secondary_text
@color/control_highlight
-09-10
acrespo
+0
什么是您的基本应用程序风格/主题? –
+0
也许尝试查看具有托管其中的警报对话框的主布局的XML文件,然后更改该文件中根元素的左侧和右侧填充。 –
+0
@dieter_h我已经添加了我的基本应用程序样式/主题。 –