AlertDialog中的EditText高度不够

时间:2018-03-09 23:51:32

标签: android

我是Android Java(和java)的新手。我正在尝试修改我在react-native app中使用的包。

目前,在横向模式下,我的EditText正在截止,如下面的屏幕截图所示。

我试图修改此库,因此我在此处修改了alertDialog.setView调用 - https://github.com/shimohq/react-native-prompt-android/blob/master/android/src/main/java/im/shimo/react/prompt/RNPromptFragment.java#L149

 alertDialog.setView(input, 50, 15, 50, 0);

显然这是"额外的空间"。我改成了:

 alertDialog.setView(input, 50, 0, 50, 0);

所以顶部的额外空间为0,但这并没有足够大,它只是移动了对话框。

请您与我分享我在alertDialog中要更改的内容,以确保高度符合对话框的内容?

2 个答案:

答案 0 :(得分:2)

  

显然这是“额外的空间”。我改成了:

     

alertDialog.setView(input,50,0,50,0);

根据documentation,您的视图后面的4个参数用于额外间距,用作填充。

所以你应该使用像

这样的东西
alertDialog.setView(input, 0, 0, 0, 0);

或只是

alertDialog.setView(input);

此外,您的输入应该有MATCH_PARENT宽度和WRAP_CONTENT高度,而不是固定大小。

答案 1 :(得分:1)

以下是我在我的应用中使用的EditText示例

<EditText
    android:id="@+id/et_edit_name"
    android:hint="Edit Name"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:inputType="text"
    android:maxLines="1"
    android:scrollbars="vertical"
    android:layout_marginTop="16dp"
    android:layout_marginLeft="4dp"
    android:layout_marginRight="4dp"
    android:layout_marginBottom="4dp"
    android:drawableEnd="@drawable/ic_edit_dark"
    tools:ignore="TextFields"
    />

    final EditText et_name = view.findViewById(R.id.et_edit_name);
    et_name.setText("PrePopulated Text");
    AlertDialog.Builder builder = new AlertDialog.Builder(JarDetailActivity.this);
    builder.setPositiveButton("Accept", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which){
            dialog.dismiss();
            String entered =et_name.getText().toString();

    builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which){
            dialog.dismiss();
        }
    });
    builder.setView(view);
    AlertDialog dialog = builder.create();
    dialog.show();
}

我试着把它清理一下,所以我可能有一个或两个错误