Android-диалог с настраиваемой раскладкой компонентов - PullRequest
1 голос
/ 22 марта 2012

У меня есть пользовательский макет для диалога, который я хочу использовать, но когда я его использую, он получается неправильного размера и объединяет все вместе.Это код моего макета (извините, он довольно длинный):

    <?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 Ответ

1 голос
/ 22 марта 2012
   <?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 автоматически изменит ширину по мере необходимости

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...