Android EditText in AlertDialog seems too wide

后端 未结 4 659
挽巷
挽巷 2021-02-13 20:03

It seems like the EditText in the image below is too wide. I assume that I have misused the SDK in some way and until convinced otherwise I am not looking for a way to specify

相关标签:
4条回答
  • 2021-02-13 20:27

    Just sorted this myself. Using an instance of AlertDialog, you can specify setView and pass in spacing parameters. This will work.

    final EditText input = new EditText(this);
    
    AlertDialog alertDialog = new AlertDialog.Builder(this).create();
    alertDialog.setTitle("Title");
    alertDialog.setMessage("Message");
    alertDialog.setView(input, 10, 0, 10, 0); // 10 spacing, left and right
    alertDialog.setButton("OK", new OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            // Clicked
        }
    });
    alertDialog.show();
    

    Edit: I'm aware this question is old, but no solution was provided.

    0 讨论(0)
  • 2021-02-13 20:31

    You can do it like this:

    LinearLayout layout = new LinearLayout(this);
    layout.setOrientation(LinearLayout.VERTICAL);
    layout.setGravity(Gravity.CENTER_HORIZONTAL);
    final EditText input = new EditText(this);
    input.setSingleLine(true);
    layout.setPadding(10, 0, 10, 0);
    input.setHint("Hint");
    layout.addView(input);
    
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setView(layout);
    

    Moreover, setSingleLine is deprecated. You should use InputStyle.

    0 讨论(0)
  • 2021-02-13 20:34

    Set the layout marginleft and layout marginright to 5sp. The margin sets the space around the view group. Take a look at ViewGroup.MarginLayoutParams

    0 讨论(0)
  • 2021-02-13 20:41

    Try setting some padding on your EditText using the setPadding method. This should add a gap between the edge of the EditText and the border of the dialog. N

    0 讨论(0)
提交回复
热议问题