如何在 AlertDialog 中为 EditText 设置边距

Dro*_*man 3 android

我使用了EditText一个AlertDialog类似的内部:

    final AlertDialog.Builder alert = new AlertDialog.Builder(getActivity());
    final EditText input = new EditText(getActivity());
    alert.setView(input);
Run Code Online (Sandbox Code Playgroud)

现在我想为此设置边距,EditText这样它就不会占用对话框的整个宽度。我怎样才能做到这一点?(我不考虑膨胀的自定义选项的Layout在这一点上

在此处输入图片说明

Haf*_*eeb 7

如果你不想膨胀自定义布局,试试这个

AlertDialog.Builder dialog = new AlertDialog.Builder(Login.this);
final EditText email_input = new EditText(Login.this);
LinearLayout linearLayout = new LinearLayout(Login.this);

LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
layoutParams.gravity = Gravity.CENTER;

email_input.setHint("Email Address");
email_input.setLayoutParams(layoutParams);

linearLayout.addView(email_input);
linearLayout.setPadding(60, 0, 60, 0);

dialog.setTitle("Forgot Password?");
dialog.setMessage("Enter Your Email Address");

dialog.setView(linearLayout);

dialog.setPositiveButton("Send", new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int whichButton) {
        // Some Code 
    }
});

dialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int whichButton) {
        dialog.dismiss();
    }
});

dialog.show();
Run Code Online (Sandbox Code Playgroud)


Bha*_*nki 5

您可以在setView方法中传递间距参数

alert.setView(view ,left_space , top_space , right_space , bottom_space);
Run Code Online (Sandbox Code Playgroud)

  • 完美运行,谢谢!我一直在尝试 edittext 填充和布局参数边距,但都没有工作。这做到了。 (2认同)
  • 它在较新的 api 中已弃用。 (2认同)