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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何设置AlertDialog自定义标题上边距和删除不需要的填充?相关的知识,希望对你有一定的参考价值。

我坚持margin的所有权paddingAlertDialog.Builder问题,我在做什么是我想要在center标题所以我用setCustomTitle我能够做到这一点,但坚持了保证金和它的填充。我不希望这是展示,也是我想设置一些顶级的保证金标题,我使用LinearLayout.LayoutParams,但它没有任何效果不必要的填充。请建议做处理it.thanks

代码:

dialog = new AlertDialog.Builder(context, R.style.DialogTheme);
TextView title = new TextView(context);
title.setTextColor(ContextCompat.getColor(context, 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.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();

结果:enter image description here

答案
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();

替换此代码,将工作

另一答案

你能避免使用DialogFragment设立这一切方法你AlertDialog。就在getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE);方法使用onCreateView,使自己的自定义视图中创建一个共同片段的方式对话。这是一个更好的方式来进行适当的对话。

另一答案

我建议你使用DialogFragment显示自定义布局警告对话框其很容易,我们可以自定义我们的对话框按requirement..for关于它的更多详细信息: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>

以上是关于如何设置AlertDialog自定义标题上边距和删除不需要的填充?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ListView 和 AlertDialog 中设置自定义字体?

如何获取 AlertDialog 中自定义列表视图的单击项的值?

使用自定义布局将宽度和高度设置为 AlertDialog 无法正确应用

如何自定义 TextField 的边距、内边距和字体大小

Android 自定义AlertDialog--备忘

如何实现自定义的 AlertDialog 视图