Search code examples
androidxmlcustomdialog

custom dialog not coming properly


In my app, I tried to make custom dialog so I wrote an XML for that and In my XML its appearing like this,

enter image description here

dialog.xml,

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:tools="http://schemas.android.com/tools"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:orientation="vertical"
           >

<RelativeLayout android:layout_width="fill_parent" 
                android:layout_height="50.0dip" 
                android:layout_marginTop="5.0dip"
                android:layout_margin="5.0dip">

    <TextView android:id="@+id/textViewOTPDialogMessage" android:text="@string/OTPDialogActivityMessage" android:gravity="center" android:textStyle="bold" android:textColor="#ff4d4d4d" 
       android:layout_width="wrap_content" android:textSize="18dp"
       android:layout_height="wrap_content"   
       android:layout_centerVertical="true" />

    <View android:layout_marginTop="1.0dip" android:layout_below="@+id/textViewOTPDialogMessage" android:layout_width="fill_parent" android:layout_height="1dp" android:background="@android:color/darker_gray"/>

</RelativeLayout>


<RelativeLayout android:layout_width="fill_parent" android:layout_height="50.0dip" android:layout_marginTop="5.0dip">

   <TextView android:text="E-Mail Id OTP* " android:id="@+id/textViewEmailOTP" android:textStyle="bold" android:textColor="#ff4d4d4d" 
       android:gravity="left"  android:layout_width="wrap_content" 
       android:layout_height="wrap_content"  android:layout_marginLeft="10.0dip" android:layout_alignParentLeft="true" 
       android:layout_centerVertical="true" />

   <EditText  
       android:id="@+id/editTextEmailIdOtp" android:background="@drawable/custom_edittext" 
       android:paddingLeft="5.0dip" android:layout_width="fill_parent" android:layout_height="35.0dip" 
       android:layout_marginLeft="150.0dip" android:layout_marginRight="10.0dip" 
       android:singleLine="true" android:layout_alignParentLeft="true" 
       android:layout_centerVertical="true" android:imeOptions="actionNext" />

</RelativeLayout>

<RelativeLayout android:layout_width="fill_parent" android:layout_height="50.0dip">

   <TextView android:text="Mobile OTP* " android:id="@+id/textViewMobileOTP" android:textStyle="bold" android:textColor="#ff4d4d4d" 
       android:gravity="left" android:layout_width="wrap_content" 
       android:layout_height="wrap_content"  android:layout_marginLeft="10.0dip" android:layout_alignParentLeft="true" 
       android:layout_centerVertical="true" />

   <EditText  
       android:id="@+id/editTextMobileOtp" android:background="@drawable/custom_edittext" 
       android:paddingLeft="5.0dip" android:layout_width="fill_parent" android:layout_height="35.0dip" 
       android:layout_marginLeft="150.0dip" android:layout_marginRight="10.0dip" 
       android:singleLine="true" android:layout_alignParentLeft="true"
       android:layout_centerVertical="true" android:imeOptions="actionNext" />

</RelativeLayout>


<Button android:id="@+id/btnValidate" android:text="Validate" android:textSize="18.0sp" android:textStyle="bold" android:textColor="#ff4d4d4d"
    android:layout_gravity="center_horizontal" android:layout_width="wrap_content" 
    android:layout_height="wrap_content" android:layout_marginTop="10.0dip" android:layout_marginBottom="10.0dip" />


</LinearLayout>

and when I am running it on my device then,

Its coming like this,

enter image description here

I tried to increase width size of dialog programmatically but getting no difference,

    private void callOTPDialog() 
    {
    Dialog myDialog = new Dialog(this);
    myDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
    myDialog.getWindow().setLayout(600, 400);
    myDialog.setContentView(R.layout.otpdialog);
    myDialog.setCancelable(false);
    Button btnValidate = (Button) myDialog.findViewById(R.id.btnValidate);

    EditText email = (EditText) myDialog.findViewById(R.id.editTextEmailIdOtp);
    EditText mobile = (EditText) myDialog.findViewById(R.id.editTextMobileOtp);
    myDialog.show();

    btnValidate.setOnClickListener(new OnClickListener()
    {

       @Override
       public void onClick(View v)
       {
               //your login calculation goes here
       }
   });


}

In XML I have mentioned these lines,

android:layout_width="fill_parent"
android:layout_height="wrap_content"

then also don't know what is happening here.

What to do now,

Please help,

Thanks.


Solution

  • Try like below:

    LayoutInflater factory = LayoutInflater.from(Splash.this);
    
    View DialogView = factory.inflate(
                R.layout.custom_progress_layout, null);
    
    Dialog main_dialog = new Dialog(Splash.this,R.style.Theme_Dialog);
    main_dialog.setContentView(DialogView);
    main_dialog.show();
    

    And create Theme_Dialog into values\styles.xml

      <style name="Theme_Dialog" parent="android:Theme.Holo.Dialog">
        <item name="android:backgroundDimEnabled">false</item>
        <item name="android:layout_width">fill_parent</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowBackground">@android:color/transparent</item>
    </style>
    

    This is perfect working in my case.

    Update: you just need to change both your RelativeLayout attribute width with android:layout_width="wrap_content" into your layout.xml.