我有一个问题,我正在为此设计一个自定义对话框。我正在为此创建一个xml,因为framelayout是根布局,另一个带有灰色背景图像的framelayout用于内容,其中我添加了一个textview和两个按钮ok和cancel,并通过dialog.setContentView(desired Xml Resource);
但当我生成那个特定的对话框时,它会从每一边显示额外的空格,或者我们可以说有额外的边距,但我不知道它将如何删除?请查看此问题所附的图片,并向我建议正确的解决方案。
XML布局:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_height="wrap_content" android:layout_width="wrap_content">

    <FrameLayout android:id="@+id/rel"
        android:layout_gravity="center_vertical" android:background="@drawable/dialog_box_bg" android:layout_width="wrap_content" android:layout_height="189dp">
        <TextView android:id="@+id/tv_LogoutDialog_Text"
            android:layout_width="wrap_content" android:layout_height="wrap_content"
            android:textColor="#424242"
            android:text="Are you sure want to logout?" android:textSize="20dip" android:layout_gravity="center_vertical|center_horizontal"></TextView>
        <Button android:id="@+id/btn_LogoutDialog_Cancel" android:background="@drawable/dialog_cancel_btn"
            android:layout_marginLeft="20dip" android:layout_width="120dip" android:layout_height="42dip" android:layout_gravity="bottom|left" android:layout_marginBottom="15dip"></Button>
        <Button android:id="@+id/btn_LogoutDialog_Ok"
    android:background="@drawable/dialog_ok_btn_hover"
    android:layout_width="120dip"
    android:layout_height="42dip" android:layout_marginLeft="180dip" android:layout_gravity="bottom|right" android:layout_marginBottom="15dip" android:layout_marginRight="20dip"></Button>
    </FrameLayout>
</FrameLayout>

代码:
@Override
    protected Dialog onCreateDialog(int id) {
        switch (id) {
        case 0:
            dialog = new Dialog(HomeScreenActivity.this);
            dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
            dialog.setContentView(R.layout.logoutdialog);
            btn_cancel = (Button)dialog.findViewById(R.id.btn_LogoutDialog_Cancel);
            btn_ok = (Button)dialog.findViewById(R.id.btn_LogoutDialog_Ok);

            btn_cancel.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View arg0) {

                    dismissDialog(0);

                }
            });

            btn_logout.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View arg0) {

                    Intent intent = new Intent(HomeScreenActivity.this,LoginScreen.class);
                    startActivity(intent);

                }
            });
        return dialog;
        }
        return null;
    }

提前谢谢。

最佳答案

不要使用

dialog.setContentView(R.layout.logoutdialog);

使用
LayoutInflater class to set Dialog content view

这里是链接(Check),你可以得到的想法,也许这有助于你。

10-01 22:09
查看更多