如何设置AlertDialog自定义标题上边距并删除不需要的填充?

时间:2016-09-29 10:33:39

标签: android alertdialog android-dialog

我遇到问题margin的{​​{1}}和padding问题,我正在做的是我想要AlertDialog.Builder中的标题所以我正在使用{ {1}}我能够这样做,但坚持使用边距和填充。我不希望显示不需要的填充,我也想设置一些标题的上边距,我使用center但它没有效果。请建议如何处理它。谢谢

代码:

setCustomTitle

结果:enter image description here

3 个答案:

答案 0 :(得分:5)

AlertDialog.Builder dialog = new AlertDialog.Builder(this);
TextView title = new TextView(this);
title.setTextColor(ContextCompat.getColor(this, android.R.color.black));
title.setTextSize(TypedValue.COMPLEX_UNIT_SP, 20);
title.setTypeface(Typeface.DEFAULT_BOLD);
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
lp.setMargins(0, 20, 0, 0);
title.setPadding(0,30,0,0);
title.setLayoutParams(lp);
title.setText("Dialog");
title.setGravity(Gravity.CENTER);
dialog.setCustomTitle(title);
dialog.setMessage("Dialog box with custom title view ");
dialog.setCancelable(false);
dialog.setPositiveButton("OK", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {

    }
});
dialog.show();

替换此代码将起作用

答案 1 :(得分:0)

您可以使用DialogFragment避免将所有这些方法设置为AlertDialog。只需在getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE);方法中使用onCreateView,然后按照创建公共片段的方式为对话框创建自己的自定义视图。这是进行正确对话的更好方法。

答案 2 :(得分:0)

我建议您使用DialogFragment将自定义布局显示为警告Dialog非常简单,我们可以根据需要自定义对话框...有关它的更多详细信息:https://developer.android.com/reference/android/app/DialogFragment.html

以下是根据您的要求进行的布局,您可以使用以下xml布局来显示自定义布局。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="10dp">

    <LinearLayout
        android:id="@+id/header"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        android:orientation="horizontal">

        <TextView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginLeft="@dimen/margin10dp"
            android:layout_weight="1"
            android:gravity="center"
            android:text="My Dialog"
            android:textColor="@color/white"
            android:textSize="22dp"
            android:textStyle="bold" />

    </LinearLayout>

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/header"
        android:padding="10dp">

        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:text="My Dialog Box Description !"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textSize="20dp" />

        <Button
            android:id="@+id/btnSubmit"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentEnd="true"
            android:layout_alignParentRight="true"
            android:layout_below="@+id/textView2"
            android:background="@android:color/transparent"
            android:text="OK"
            android:textSize="22dp" />

    </RelativeLayout>
</RelativeLayout>