AlertDialog: How To Remove Black Borders Above and Below View

三世轮回 提交于 2019-11-27 19:40:39
Steve

If you look at the AlertDialog class source you'll see most of the methods are simply proxy methods (facade) around private AlertController mAlert.

Looking at the AlertController class source you'll see 4 interesting member variables:

private int mViewSpacingLeft;
private int mViewSpacingTop;
private int mViewSpacingRight;
private int mViewSpacingBottom;
private boolean mViewSpacingSpecified = false;

Setting mViewSpacingSpecified to true will remove the borders on the top and bottom of the dialog.

This is done properly by changing this line:

dialog.setView(layout);

to:

dialog.setView(layout, 0, 0, 0, 0);
dialog.setInverseBackgroundForced(true);

use the above in your code to remove the border of the alert dialog.

Refer this LINK for InverseBackgroundForced.

UPDATED Try this code::::

public class Welcome  extends Activity
{
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.welcome);

        AlertDialog.Builder builder = new AlertDialog.Builder(Welcome.this);
        LayoutInflater _inflater = LayoutInflater.from(Welcome.this);
        View view = _inflater.inflate(R.layout.welcomedialog,null);
        builder.setView(view);

        AlertDialog alert = builder.create();
        alert.show();
    }
}

Note:: Also try by removing android:padding="40px" from welcomedialog.xml.

In my case, that border was caused by the theme of the parent Activity for the AlertDialog. To get rid of the border completely, give it a different theme (in this case, Holo):

AlertDialog.Builder builder = new AlertDialog.Builder(
                                new ContextThemeWrapper(this, android.R.style.Theme_Holo)
                              );

This fixed it for me. Hope this helps!

Just to make Steve's answer more clear, this can be done easily. For example in my case the view I was setting in the dialog was a WebView.

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {

    WebView webView = new WebView(getActivity());
    webView.loadUrl(" url to show ");


    OnClickListener clickListenerOk = new OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            ...
        }
    };

    OnClickListener clickListenerCancel = new OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            ...
        }
    };

    AlertDialog dialog = new AlertDialog.Builder(getActivity())

            .setPositiveButton("OK", clickListenerOk)

            .setNegativeButton("Cancel",clickListenerCancel)

            .create();

    dialog.setView(webView, 0, 0, 0, 0);

    return dialog;
}
setBackgroundDrawable(new ColorDrawable(0));

Call this in your dialog.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!