如何在中心垂直显示自定义对话框

时间:2017-12-06 10:18:30

标签: android dialog customdialog

参见屏幕截图,对话框未显示垂直中心和意外边距

image

我尝试了许多例子,但没有人解决这个问题。 请参考屏幕截图,这样你就会很容易理解,我的问题是什么。 “如您所见 - 对话框出现意外边距”

我也试过这个

  

窗口窗口= dialog.getWindow();                   window.setLayout(AppBarLayout.LayoutParams.WRAP_CONTENT,                   AppBarLayout.LayoutParams.WRAP_CONTENT);                   window.setGravity(Gravity.CENTER);

java代码是 -

final Dialog dialog = new Dialog(MainActivity.this);
            dialog.setContentView(R.layout.dialogforgot_password);
            final EditText et_emailforgot = (EditText)dialog.findViewById(R.id.et_EnterMail);
            final Button bt_SubmitForgotPass = (Button)dialog.findViewById(R.id.bt_SubmitForgotButton);
            final TextView ForgotHeading = (TextView)dialog.findViewById(R.id.tv_forgotpasswordHeading);
            final TextView PleaseEnterurMail = (TextView)dialog.findViewById(R.id.tv_Enteruremail);
            et_emailforgot.setTypeface(Lato_Regular);
            PleaseEnterurMail.setTypeface(Lato_Regular);
            ForgotHeading.setTypeface(Lato_Bold);
            bt_SubmitForgotPass.setTypeface(Lato_Bold);
            dialog.show();

我的XML文件如下:

<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/rounded_windowcorner"
>
<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:background="@drawable/rounded_headingcorner"
    android:layout_alignParentTop="true"
    android:id="@+id/RLForgot">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Forgot Password"
        android:textColor="#ffffff"
        android:textSize="16dp"
        android:id="@+id/tv_forgotpasswordHeading"
        android:layout_centerVertical="true"
        android:layout_centerHorizontal="true" />
</RelativeLayout>
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Please Enter Your Registered Email id"
        android:textColor="#000000"
        android:textSize="17dp"
        android:layout_marginRight="22dp"
        android:layout_marginLeft="22dp"
        android:id="@+id/tv_Enteruremail"
        android:layout_centerHorizontal="true"
        android:layout_below="@+id/RLForgot"
        android:layout_marginTop="20dp"
        android:textAlignment="center"
        />
    <EditText
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:textAlignment="center"
        android:id="@+id/et_EnterMail"
        android:hint="Enter Your Email Id Here"
        android:singleLine="true"
        android:background="@drawable/custom_spinner_background"
        android:layout_centerHorizontal="true"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:layout_marginTop="40dp"
        android:layout_below="@+id/tv_Enteruremail"
        />
    <Button
        android:layout_width="wrap_content"
        android:layout_height="40dp"
        android:text="Submit"
        android:background="@drawable/signin_btn"
        android:textColor="@color/signinlogcolor"
        style="?android:attr/borderlessButtonStyle"
        android:id="@+id/bt_SubmitForgotButton"
        android:layout_marginTop="30dp"
        android:layout_marginBottom="10dp"
        android:layout_below="@+id/et_EnterMail"
        android:layout_centerHorizontal="true" />
        </RelativeLayout>

2 个答案:

答案 0 :(得分:2)

  

我的问题是什么。 &#34;如您所见 - 对话框出现意外边距&#34;

称为Dialog 标题使用 dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); Dialog删除标题,如下code

试试这个

final Dialog dialog = new Dialog(MainActivity.this);    
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.dialogforgot_password);

答案 1 :(得分:-1)

  

对话框中没有任何意外边距

您的对话框已经垂直对齐。因为你有标题栏,所以似乎关闭了。

dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
对话框初始化后