2014-02-04 7 views
1

Я пытаюсь заполнить LinearLayout цветом фона, однако в нижней части экрана у меня есть нижний колонтитул с ListView, который имеет цвет фона с покрытием.LinearLayout заполнение цвета фона всей страницы

http://i.imgur.com/k8CzOyJ.jpg

Код:

<ScrollView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:fillViewport="true"> 

    <RelativeLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 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:paddingTop="5dip" 
      android:paddingBottom="5dip"> 
      <!-- Logo Start--> 
      <ImageView android:src="@drawable/reglogo" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginLeft="10dip"/> 
      <!-- Logo Ends --> 
     </LinearLayout> 
     <!-- Header Ends --> 

     <!-- Footer Start --> 
     <LinearLayout android:id="@+id/footer" 
      android:layout_width="fill_parent" 
      android:layout_height="90dip" 
      android:orientation="vertical" 
      android:layout_alignParentBottom="true"> 
      <!-- List Starts --> 
      <ListView 
       android:id="@+id/list" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent"> 
      </ListView> 
     </LinearLayout> 
     <!-- Footer Ends --> 

     <LinearLayout 
      xmlns:android="http://schemas.android.com/apk/res/android" 
      android:orientation="vertical" 
      android:layout_width="match_parent" 
      android:layout_height="fill_parent" 
      android:layout_below="@id/header" 
      android:background="@color/blue"> 
     </LinearLayout> 

    </RelativeLayout> 
</ScrollView> 

Я понимаю android:layout_width="fill_parent" это то, что является причиной проблемы, но когда я wrap_content это не заполнили площадь, я хотел его.

Как остановить цвет фона в нижней части страницы?

+1

Я не знаю, правильно ли вы поняли, но вы можете попробовать установить «android: layout_above =» @ + id/footer ». – owe

+0

Каков ваш ожидаемый результат? –

ответ

1

Проблема заключается в том, что android:layout_below="@id/header" заставляет LinearLayout перекрывать нижний колонтитул. Попробуйте сделать это так:

<LinearLayout 
      xmlns:android="http://schemas.android.com/apk/res/android" 
      android:orientation="vertical" 
      android:layout_width="match_parent" 
      android:layout_height="fill_parent" 
      android:layout_below="@id/header" 
      android:layout_above="@id/footer" 
      android:background="@color/blue"> 
</LinearLayout> 

Здесь мы выровняем сверху так, чтобы он не перекрывался.

Редактировать: ключевой момент, который следует помнить, заключается в том, что RelativeLayout и FrameLayout позволяют Views перекрывать друг друга. Также имейте в виду, что Views позже в XML для ViewGroup имеют более высокий Z-порядок. Если мое предложение не работает (не могу проверить его на данный момент, извините), вы также можете попытаться объявить нижний колонтитул после синего фона, чтобы увидеть, будет ли Z-порядок отображаться над синим фоном.

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