android - 在 AlertDialog 中设置 EditText 的边距

标签 android android-alertdialog

我在我的 Android 应用程序中创建了一个带有 EditText 的 AlertDialog,但默认边距看起来真的很差。我尝试按如下方式指定边距:

  android.support.v7.app.AlertDialog.Builder builder =  new android.support.v7.app.AlertDialog.Builder(SpinActivity.this);
            builder.setTitle("Edit Spin Tags");
            builder.setMessage("(separate tags with commas)");

            // set input
            int margin = 10;
            final EditText input = new EditText(SpinActivity.this);
            input.setSingleLine();
            input.setText(spinTags.toString().replace("[", "").replace("]", ""));
            builder.setView(input, margin, 0, margin, 0);

但是,从下图中,您可以看到它没有应用预期的效果。

enter image description here

我尝试过的其他选项包括将输入放在 LinearLayout 中,并在将 AlertDialog View 设置为 LinearLayout 之前使用 LayoutParams 设置边距。

如何在 AlertDialog 中设置 EditText 的边距?

最佳答案

实际上您的解决方案运行良好,除了 builder.setView(input, margin, 0, margin, 0); 以“像素”值作为参数。所以 20 的值非常小。要么使用更高的 margin 值,例如在 100 年代。或使用此函数将 dp 转换为像素

public static int dpToPx(int dp)
{
    return (int) (dp * Resources.getSystem().getDisplayMetrics().density);
}

然后,

int margin = dpToPx(20);

关于android - 在 AlertDialog 中设置 EditText 的边距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38571517/

相关文章:

java - Android 位置对象始终为空

android - 如何使用我的 values/colors.xml 文件中定义的颜色更改 TextView 背景颜色?

android - 从文件插入 SQLite 数据库,只插入一行

android - 为什么 layout_weight 在 RelativeLayout 中不能正常工作?

android - 在 AlertDialog 上显示 NumberPicker

android - 只能从安卓市场下载应用

android - AlertDialog 中按钮的部分显示

java - 对话框正按钮onClick调用接口(interface)时出现NullPointerException

android - 模糊 AlertDialog 背后的背景

android - 如何从 AlertDialog 构建器中删除黑色边框