Я пытаюсь создать LinearLayout с двумя Listviews и не вижу второго Listview. В примере вы увидите, что я хотел бы иметь изображение, затем заголовок (для первого списка), а затем ListView. За этим должен следовать другой заголовок (для второго списка), а затем второй ListView. Я хочу, чтобы оба ListViews прокручивали и не влияли друг на друга. По сути, идея состоит в том, что пользователь может прокручивать два разных списка. Это прекрасно работает с одним ListView, и только сегодня я заметил, что у меня давно забытый Relativelayout (RelativeLayout01), который, кажется, ничего не делает.
<?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:background="@drawable/bkgrnd"
android:orientation="vertical" >
<ImageView
android:id="@+id/test_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_gravity="center"
android:paddingBottom="30sp"
android:paddingTop="30sp"
android:src="@drawable/title" />
<RelativeLayout
android:id="@+id/RelativeLayout01"
android:layout_width="716sp"
android:layout_height="wrap_content" >
</RelativeLayout>
<TextView
android:id="@+id/ title1_head"
android:layout_width="fill_parent"
android:layout_height="60sp"
android:layout_centerHorizontal="true"
android:gravity="center"
android:text="@string/ title1_head"
android:textColor="#ffffff"
android:textSize="12pt" />
<RelativeLayout
android:id="@+id/RelativeLayout02"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_horizontal" >
<ListView
android:id="@+id/ListView_Menu"
android:layout_width="716sp"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:divider="@drawable/divider"
android:listSelector="@drawable/textured" >
</ListView>
</RelativeLayout>
<TextView
android:id="@+id/title2_head"
android:layout_width="fill_parent"
android:layout_height="60sp"
android:layout_centerHorizontal="true"
android:gravity="center"
android:text="@string/title2_head"
android:textColor="#ffffff"
android:textSize="12pt" />
<RelativeLayout
android:id="@+id/RelativeLayout03"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_horizontal" >
<ListView
android:id="@+id/ListView1_Menu"
android:layout_width="716sp"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:divider="@drawable/divider"
android:listSelector="@drawable/textured" >
</ListView>
</RelativeLayout>
То, что, по-видимому, происходит, - это первый ListView
который делает то же, что вы сказали, и заполняя все доступное пространство, и вы делаете Layout более сложным. Используйте только 1 LinearLayout
и используйте android:weight="0"
для заголовков и не ListView
views and android:weight="1"
для ваших просмотров ListView
. Вес поможет вам контролировать высоту представлений ListView
.
Если вам нужен более подробный контроль над каждой группой заголовков и их перенос в их собственный LinearLayout
и постарайтесь не накладывать вес на содержимое этого макета, так как это может повлиять на производительность.
Это будет иметь два списка просмотров бок о бок
<?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" >
<ImageView
android:id="@+id/test_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_gravity="center"
android:paddingBottom="30sp"
android:paddingTop="30sp"
android:src="@drawable/title" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<LinearLayout
android:layout_width="0dip"
android:layout_weight="1"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/title1_head"
android:layout_width="fill_parent"
android:layout_height="60sp"
android:layout_centerHorizontal="true"
android:gravity="center"
android:text="title1"
android:text="@string/title1_head"
android:textColor="#ffffff"
android:textSize="12pt" />
<ListView
android:id="@+id/ListView_Menu"
android:layout_width="716sp"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:divider="@drawable/divider"
android:listSelector="@drawable/textured" />
</LinearLayout>
<LinearLayout
android:layout_width="0dip"
android:layout_weight="1"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/title2_head"
android:layout_width="fill_parent"
android:layout_height="60sp"
android:layout_centerHorizontal="true"
android:gravity="center"
android:text="@string/title2_head"
android:text="title2"
android:textColor="#ffffff"
android:textSize="12pt" />
<ListView
android:id="@+id/ListView1_Menu"
android:layout_width="716sp"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:divider="@drawable/divider"
android:listSelector="@drawable/textured" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
Это все еще довольно уродливо из-за вложенных макетов. RelativeLayout может оказаться лучше. Я могу переработать это позже, но пока это выполнит то, что вам нужно