Search code examples
androiddialogsizecustomdialog

Android Custom Dialog size not proportional


I needed help to further understanding with custom dialog.

I create custom dialog but why the size not proportional, like this..

enter image description here

this is how I call the dialog with custom layout.

Dialog dialog = new Dialog(context);
dialog.setContentView(R.layout.dialog_dp3_out); //layout for dialog
dialog.setTitle("Add a new friend");

dialog.show();

this the custom layout...

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

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_weight="1">

        <android.support.design.widget.TextInputLayout
            android:id="@+id/input_layout_time_load"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1">

            <EditText
                android:id="@+id/txtTimeLoad"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="Jam Muat Dari"
                android:inputType="time"
                android:maxLines="1"
                android:textColor="#000000" />
        </android.support.design.widget.TextInputLayout>

        <android.support.design.widget.TextInputLayout
            android:id="@+id/input_layout_time_finish"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1">

            <EditText
                android:id="@+id/txtTimeFinish"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="Jam Muat Sampai"
                android:inputType="time"
                android:maxLines="1"
                android:textColor="#000000" />
        </android.support.design.widget.TextInputLayout>
    </LinearLayout>

    <android.support.design.widget.TextInputLayout
        android:id="@+id/input_layout_from"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1">

        <EditText
            android:id="@+id/txtFrom"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="Asal"
            android:maxLines="1"
            android:textColor="#000000" />
    </android.support.design.widget.TextInputLayout>

    <android.support.design.widget.TextInputLayout
        android:id="@+id/input_layout_to"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1">

        <EditText
            android:id="@+id/txtTo"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="Tujuan"
            android:maxLines="1"
            android:textColor="#000000" />
    </android.support.design.widget.TextInputLayout>

    <android.support.design.widget.TextInputLayout
        android:id="@+id/input_layout_vehicle"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1">

        <EditText
            android:id="@+id/txtVehicle"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="Nomor Kendaraan"
            android:maxLines="1"
            android:textColor="#000000" />
    </android.support.design.widget.TextInputLayout>

    <android.support.design.widget.TextInputLayout
        android:id="@+id/input_layout_vehicle_driver"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1">

        <EditText
            android:id="@+id/txtVehicleDriver"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="Supir"
            android:maxLines="1"
            android:textColor="#000000" />
    </android.support.design.widget.TextInputLayout>

    <android.support.design.widget.TextInputLayout
        android:id="@+id/input_layout_vehicle_codriver"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1">

        <EditText
            android:id="@+id/txtVehicleCodriver"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="Kenek"
            android:maxLines="1"
            android:textColor="#000000" />
    </android.support.design.widget.TextInputLayout>
</LinearLayout>

Please let me know where I'm wrong..regards..


Solution

  • You should use setLayout Method

     Dialog dialog = new Dialog(context);
    dialog.setContentView(R.layout.dialog_dp3_out);
    dialog.getWindow().setLayout( , ); // Add  Width and Height
    dialog.show();
    

    Dynamic

    DisplayMetrics metrics = getResources().getDisplayMetrics();
    
        int device_TotalWidth = metrics.widthPixels;
        int device_TotalHeight = metrics.heightPixels;
    
       dialog.getWindow().setLayout(device_TotalWidth*80/100 , ); // set here your value