Как я помещаю виджеты выше и ниже listview?

Я имею представление списка и хочу поместить материал оба выше (на оси y) и ниже (оси y) это включая изображения, текстовые представления и строку кнопок. Ниже упрощенная версия того, что я создаю. К сожалению, покрытия списка (т.е. выше на оси z) заголовок так текст заголовка не видимы вместо того, чтобы быть внизу (на оси y)

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content">

    <TextView android:id="@+id/footer" 
        android:text="footer"
        android:layout_height="wrap_content" 
        android:layout_width="fill_parent" 
        android:layout_alignParentBottom="true"
        />

    <ListView  android:id="@+id/list_view" 
        android:layout_height="fill_parent" 
        android:layout_width="fill_parent"
        android:layout_above="@id/footer"
        android:background="#ff9999ff"/>

    <TextView android:id="@+id/header" 
        android:text="header"
        android:layout_height="wrap_content" 
        android:layout_width="fill_parent" 
        android:layout_alignParentTop="true"
        android:layout_above="@id/list_view"
        android:baselineAlignBottom="false"
        />

</RelativeLayout>

Вот соответствующий класс Действия:

public class SampleListActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.list_activity);

    }
}
6
задан Jay Askren 17 March 2010 в 03:18
поделиться

2 ответа

Мне не удалось заставить относительную компоновку работать в Android 1.5, но я сделал заставить работать Linear Layout. Ниже мое решение:

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

    <TextView android:id="@+id/header" 
        android:text="header"
        android:layout_height="wrap_content" 
        android:layout_width="fill_parent" 
        android:layout_weight="0"
        />
    <ListView  android:id="@+id/list_view" 
        android:layout_height="fill_parent" 
        android:layout_width="fill_parent"
        android:background="#ff9999ff"
        android:layout_weight="1"/>

    <TextView android:id="@+id/footer" 
        android:text="footer"
        android:layout_height="wrap_content" 
        android:layout_width="fill_parent" 
        android:layout_weight="0"
        />
</LinearLayout>
10
ответ дан 8 December 2019 в 14:42
поделиться

Если вы ориентируетесь на Android 1.6 и выше, добавьте android: layout_below = "@ id / header" к существующим атрибутам в ListView .

Если вы по-прежнему ориентируетесь на Android 1.5, вам нужно будет сделать это android: layout_below = "@ + id / header" и, возможно, удалить знак + из текущего android: id = "@ + id / header" атрибут в TextView .

RelativeLayout , начиная с версии 1.6, поддерживает прямые ссылки на другие виджеты, если первое вхождение значения ID имеет знак + .

2
ответ дан 8 December 2019 в 14:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: