Android: как я могу нарисовать эту LinearLayout? - PullRequest
0 голосов
/ 09 июня 2011

Я хотел бы реализовать LinearLayout в Android, как это:

http://www.disclafani.net/layout.png

но я не знаю, как это сделать.

Если я сделаю:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent" 
android:layout_height="60dp" >
<LinearLayout 
    android:orientation="vertical"
    android:layout_width="fill_parent" 
    android:layout_height="60dp" >
    <TextView android:text="TextView" android:id="@+id/item_0"
        android:layout_width="wrap_content" 
        android:layout_height="30dp" >
    </TextView>
    <TextView android:text="TextView" android:id="@+id/item_1"
        android:layout_width="wrap_content" 
        android:layout_height="30dp" 
        android:textSize="18dp"
        android:textColor="#ff0000">
    </TextView>
</LinearLayout>    
<LinearLayout 
    android:layout_width="80dp" 
    android:gravity="right"
    android:layout_height="60dp" >
    <TextView android:text="TextView" android:id="@+id/item_2"
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:textSize="20dp"
        android:textColor="#ff0000">
    </TextView>
</LinearLayout>

</LinearLayout>    

Второй LinearLayout (справа) не отображается. Я думаю, что я должен был бы использовать RelativeLayout, но как я могу нарисовать аналогичный LinearLayout?

Это макет, используемый для ListItem в ListView, поэтому каждый блок должен иметь одинаковую ширину (следовательно, нельзя использовать wrap_content для оболочки макета 2 item_0 и item_1.

Спасибо и приветствия

Ответы [ 3 ]

2 голосов
/ 09 июня 2011

Попробуйте добавить android: layout_weight = "1" к первому дочернему элементу LinearLayout внутри верхнего уровня LinearLayout (т. Е. В 5-й строке вашего XML):

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal" android:layout_width="fill_parent"
    android:layout_height="60dp">
    <LinearLayout android:orientation="vertical"
        android:layout_width="fill_parent" android:layout_height="60dp" android:layout_weight="1">
        <TextView android:text="TextView" android:id="@+id/item_0"
            android:layout_width="wrap_content" android:layout_height="30dp">
        </TextView>
        <TextView android:text="TextView" android:id="@+id/item_1"
            android:layout_width="wrap_content" android:layout_height="30dp"
            android:textSize="18dp" android:textColor="#ff0000">
        </TextView>
    </LinearLayout>
    <LinearLayout android:layout_width="80dp" android:gravity="right"
        android:layout_height="60dp">
        <TextView android:text="TextView" android:id="@+id/item_2"
            android:layout_width="fill_parent" android:layout_height="wrap_content"
            android:textSize="20dp" android:textColor="#ff0000">
        </TextView>
    </LinearLayout>

</LinearLayout>
1 голос
/ 09 июня 2011

http://developer.android.com/resources/articles/layout-tricks-efficiency.html

так более эффективным будет такой макет:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="60dp">
    <TextView android:text="TextView" android:id="@+id/item_2"
        android:layout_width="80dp" android:layout_alignParentTop="true"
        android:layout_height="60dp" android:textSize="20dp"
        android:textColor="#ff0000" android:layout_alignParentRight="true">
    </TextView>
    <TextView android:text="TextView" android:id="@+id/item_0"
        android:layout_width="fill_parent" android:layout_height="30dp"
        android:layout_toLeftOf="@id/item_2">
    </TextView>
    <TextView android:text="TextView" android:id="@+id/item_1"
        android:layout_width="fill_parent" android:layout_height="30dp"
        android:textSize="18dp" android:textColor="#ff0000"
        android:layout_below="@id/item_0" android:layout_toLeftOf="@id/item_2">
    </TextView>
</RelativeLayout>
1 голос
/ 09 июня 2011
 <?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="60dp" >

<LinearLayout 
    android:orientation="vertical"
    android:layout_width="fill_parent" 
    android:layout_height="60dp" 
    android:layout_weight="70">
    <TextView android:text="TextView" android:id="@+id/item_0"
        android:layout_width="wrap_content" 
        android:layout_height="30dp" >
    </TextView>
    <TextView android:text="TextView" android:id="@+id/item_1"
        android:layout_width="wrap_content" 
        android:layout_height="30dp" 
        android:textSize="18dp"
        android:textColor="#ff0000">
    </TextView>
</LinearLayout>    
<LinearLayout 
    android:layout_weight="30"
    android:layout_width="80dp" 
    android:gravity="right"
    android:layout_height="60dp" >
    <TextView android:text="TextView" android:id="@+id/item_2"
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:textSize="20dp"
        android:textColor="#ff0000">
    </TextView>
</LinearLayout>

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