Android对话框,自定义布局将组件压缩在一起

时间:2012-03-21 20:19:04

标签: android android-layout dialog

我有一个我想要使用的对话框的自定义布局,但是当我使用它时,它出现了错误的大小并将所有内容整合在一起。  这是我的布局代码(抱歉有点长):

    <?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>

以下是我用来初始化对话框并显示它的代码:

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

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

无论如何,我可以让对话框大小本身就像其他对话框中的内容一样足够吗?

1 个答案:

答案 0 :(得分:1)

   <?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" > 

调用match_parent将根据需要自动调整宽度