2012-01-14 5 views
5

Я пытаюсь создать Android-представление, со списком в виде верхнего и нижнего колонтитула. до сих пор управлял только заголовком. Вот картина, которая объясняет, что я хочу и что у меня есть.listview с верхним и нижним колонтитулом

Attempt

Кто-нибудь знает, что я делаю неправильно? Сушат текущий код:

<?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:background="#ffffff"> 

<!-- Header Starts--> 
<LinearLayout android:id="@+id/header" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:background="@layout/header_gradient" 
     android:layout_margin="5dip" 
     android:paddingTop="13dip" 
     android:paddingBottom="8dip"> 
    <!-- Logo Start--> 
    <ImageView android:src="@drawable/logo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dip" /> 
    <!-- Logo Ends --> 
</LinearLayout> 
<!-- Header Ends --> 

<!-- Content --> 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:layout_height="fill_parent" 
       android:layout_width="fill_parent" 
       android:orientation="vertical" 
       android:gravity="center"> 

     <LinearLayout android:orientation="horizontal" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_margin="5dip"> 

      <EditText android:id="@+id/searchText" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" 
        android:layout_weight="1"/> 

      <ImageButton android:id="@+id/searchButton" 
        android:layout_height="wrap_content" 
        android:layout_width="wrap_content" 
        android:src="@android:drawable/ic_menu_search" /> 
     </LinearLayout> 

     <ListView android:id="@+id/lstNews" 
       android:layout_height="fill_parent" 
       android:layout_width="fill_parent" 
       android:layout_marginLeft="5dip" 
       android:layout_marginRight="5dip" /> 
    </LinearLayout> 

<!-- Footer Start --> 
<LinearLayout android:id="@+id/footer" 
    android:layout_width="fill_parent" 
    android:layout_height="30dip" 
    android:background="@layout/footer_gradient" 
    android:layout_margin="5dip" 
    android:paddingTop="5dip" 
    android:paddingLeft="5dip" 
    android:layout_alignParentBottom="true"> 
    <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#FFFFFF" android:text="Instituto Superior de " /> 
    <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#FFFFFF" android:textStyle="bold" android:text="Engenharia" /> 
    <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#FFFFFF" android:text=" do Porto" /> 
</LinearLayout> 
<!-- Footer Ends --></LinearLayout> 
+1

Вы должны использовать RelativeLayout для этого, а затем якорь заголовка/нижнего колонтитула к родителям края. например 'android: layout_alignParentTop' – Glitch

ответ

3

Один из вариантов - вместо этого использовать RelativeLayout.

Во-первых, вам нужно будет изменить свой внешний вид LinearLayout на RelativeLayout.

Следующим шагом является добавление свойства android:layout_above="@id/content" в заголовок.

<!-- Header Starts--> 
<LinearLayout android:id="@+id/header" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:background="@layout/header_gradient" 
    android:layout_margin="5dip" 
    android:paddingTop="13dip" 
    android:paddingBottom="8dip" 
    android:layout_above="@id/content"> 

Последним шагом является добавление свойства android:layout_above="@id/footer" и android:id="@+id/content" к LinearLayout, который содержит содержание и ListView т.е.

<!-- Content --> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/content" 
      android:layout_height="fill_parent" 
      android:layout_width="fill_parent" 
      android:orientation="vertical" 
      android:gravity="center" 
      android:layout_above="@id/footer"> 
+1

, вот и все. thx very –

+0

Без проблем, пожалуйста! – silleknarf

0

Элементы добавляются в LinearLayout в порядке, так что, когда ListView заполняет родителя он занимает все пространство. Я попытался бы установить layout_weight из ListView равным 1.

+0

thx для ответа. Я положил layout_weight в 1, и результат будет таким же –

0

Во второй корневой макет набора высоты wrap_content или что-нибудь еще, но не fill_parent , Если ЮО хотите установить wrap_content установить android:weight1.0 или простой 1

Смежные вопросы