如何设置AlertDialog左右边距?

时间:2016-05-25 11:27:51

标签: android

我想将左右边距设置为40dp

AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this);
LayoutInflater inflater = this.getLayoutInflater();
View dialogView = inflater.inflate(R.layout.content_dialog, null);
dialogBuilder.setView(dialogView);

AppCompatTextView title = new AppCompatTextView(this);
int innerPadding_px = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 24, getResources().getDisplayMetrics());
int outerPaddingLeftRight_px = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 40, getResources().getDisplayMetrics());

title.setPadding(innerPadding_px, innerPadding_px, innerPadding_px, innerPadding_px);
AlertDialog alertDialog = dialogBuilder.create();


WindowManager.LayoutParams layoutParams = alertDialog.getWindow().getAttributes();

我尝试这样,但它不起作用

layoutParams.horizontalMargin = outerPaddingLeftRight_px;
alertDialog.getWindow().setAttributes(layoutParams);
alertDialog.setTitle("Выбрать автомобиль");
alertDialog.show();

1 个答案:

答案 0 :(得分:0)

当您为视图充气时,您可以向视图添加自定义布局参数以允许动态边距。

膨胀对话框视图。

View dialogView = inflater.inflate(R.layout.content_dialog, null);

获取线性布局视图的布局参数。我们假设您使用的是您在评论部分粘贴的xml代码中的LinearLayout。

LinearLayout.LayoutParams layoutParams = dialogView.getLayoutParams();

设置您想要设置的边距。

layoutParams.horizontalMargin = outerPaddingLeftRight_px;

要求布局请重新发布您的观点,因为您已更新布局参数。

dialogView.requestLayout();

最后将新的闪亮视图设置为“警报对话框”构建器。

dialogBuilder.setView(dialogView);