Andrew Delgadillo
Andrew Delgadillo

Reputation: 161

Android Dialog with custom layout squishing components together

I have a custom layout for a dialog I want to use, but when I use it it comes out the wrong size and squishes everything together. This is my layout code(Sorry it is kinda long):

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

    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="0" >

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="0"
            android:text="Task"
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <EditText
            android:id="@+id/editTextTask"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:hint="Enter Task" >

            <requestFocus />
        </EditText>

    </LinearLayout>

    <LinearLayout
        android:id="@+id/linearLayout2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="0" >


        <LinearLayout
            android:id="@+id/linearLayout3"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:orientation="vertical" >

            <TextView
                android:id="@+id/textView2"
                android:layout_height="wrap_content"
                android:text="Priority"
                android:textAppearance="?android:attr/textAppearanceSmall" android:layout_gravity="center_horizontal" android:layout_width="wrap_content"/>

            <ImageView
                android:id="@+id/imageView1"
                android:layout_width="48dp"
                android:layout_height="48dp"
                android:src="@drawable/important_icon" android:layout_gravity="center_horizontal"/>

        </LinearLayout>

        <LinearLayout
            android:id="@+id/linearLayout4"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:orientation="vertical" android:layout_weight="1">

            <TextView
                android:id="@+id/textView3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Category"
                android:textAppearance="?android:attr/textAppearanceSmall" android:layout_gravity="center_horizontal"/>

            <ImageView
                android:id="@+id/imageView2"
                android:layout_width="48dp"
                android:layout_height="48dp"
                android:src="@drawable/folder_icon" android:layout_gravity="center_horizontal"/>

        </LinearLayout>

        <LinearLayout
            android:id="@+id/linearLayout5"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:orientation="vertical" >

            <TextView
                android:id="@+id/textView4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Notes"
                android:textAppearance="?android:attr/textAppearanceSmall" android:layout_gravity="center_horizontal"/>

            <ImageView
                android:id="@+id/imageView3"
                android:layout_width="48dp"
                android:layout_height="48dp"
                android:layout_weight="0"
                android:src="@drawable/notepad_icon" android:layout_gravity="center_horizontal"/>

        </LinearLayout>

        <LinearLayout
            android:id="@+id/linearLayout6"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:orientation="vertical" >

            <TextView
                android:id="@+id/textView5"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Reminder"
                android:textAppearance="?android:attr/textAppearanceSmall" android:layout_gravity="center_horizontal"/>

            <ImageView
                android:id="@+id/imageView4"
                android:layout_width="48dp"
                android:layout_height="48dp"
                android:src="@drawable/alarm_icon" android:layout_gravity="center_horizontal"/>

        </LinearLayout>

    </LinearLayout>

    <LinearLayout
        android:id="@+id/linearLayout7"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1" android:layout_gravity="center_horizontal">

        <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Done" android:layout_gravity="center_horizontal"/>

        <Button
            android:id="@+id/button2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Cancel" android:layout_gravity="center_horizontal"/>

    </LinearLayout>

</LinearLayout>

Here is the code I am using to initialize the dialog and show it:

Context mContext = TaskListActivity.this;
            Dialog dialog = new Dialog(mContext);

            dialog.setContentView(R.layout.new_note);
            dialog.setTitle("Add Task");
            dialog.show();

Is the anyway I could make the dialog size itself to be just enough for the content in it just like other dialogs?

Upvotes: 1

Views: 823

Answers (1)

Mayank
Mayank

Reputation: 8852

   <?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="wrap_content" 
    android:orientation="vertical" 
    android:padding="10dp" > 

calling match_parent will automatically adjust width as needed

Upvotes: 1

Related Questions