为Dialog中的EditText设置Margin的方法

错误做法:

LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
layoutParams.setMargins(10,10,10,10);
editText.setLayoutParams(layoutParams);

错误原因(原文):

因为我们设置的LayoutParams的高是WRAP_CONTENT,而他布局里又没有子控件,自然就没有高度。

正确方法,必须在外面加一个Layout(原文):

final AlertDialog.Builder alert = new AlertDialog.Builder(thisActivity);
final EditText input = new EditText(thisActivity);
FrameLayout container = new FrameLayout(thisActivity);
FrameLayout.LayoutParams params = new  FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
params.leftMargin = getResources().getDimensionPixelSize(R.dimen.dialog_margin);
input.setLayoutParams(params);
container.addView(input);
alert.setView(container);

你可能感兴趣的:(为Dialog中的EditText设置Margin的方法)