3

如何在屏幕底部设置横幅?
我尝试使用RelativeLayout,它保持在底部,但在屏幕之外。

这是我的简单代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@+id/layout_home"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:background="@drawable/background" 
   android:orientation="vertical">

       <LinearLayout 
            android:id="@+id/layout_body"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:background="@drawable/background2" 
            android:orientation="vertical">

          ......
       </LinearLayout>
       <RelativeLayout
            android:id="@+id/layout_banner"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" >
         ....
       </RelativeLayout>
</LinearLayout>

更新

我已经设置了 android:layout_alignParentBottom="true" 但没有改变

4

4 回答 4

2

使用下面的 XML 代码在底部显示横幅。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@+id/layout_home"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:background="@drawable/background">

       <LinearLayout 
            android:id="@+id/layout_body"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:background="@drawable/background2" 
            android:orientation="vertical" 
            android:layout_above="@+id/layout_banner">

          ......
       </LinearLayout>
       <RelativeLayout
            android:id="@+id/layout_banner"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" 
            android:layout_alignParentBottom="true">
         ....
       </RelativeLayout>
</RelativeLayout>
于 2012-09-20T07:23:45.103 回答
1

这是因为LinearLayoutwith idlayout_body已经占据了整个屏幕。因此,RelativeLayout带有 idlayout_banner的人无处可去,只能在屏幕底部之外。

相反,您可以尝试以下方法:

  1. 更改RelativeLayoutLinearLayout
  2. 更改layout_bodyand到layout_banner_layout_heightwarp_content
  3. 添加layout_weight="1"layout_body

这应该归档您的要求。

于 2012-09-20T07:08:54.473 回答
1

将您的横幅放入RelativeLayout并使用android:layout_alignParentBottom="true"
检查解决方案:https ://stackoverflow.com/a/5380447/1434631

于 2012-09-20T07:03:36.867 回答
0

如果要将视图保持在线性布局中,可以添加一个空视图,该视图使用以下属性填充空白android:layout_weight="1"

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@+id/layout_home"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:background="@drawable/background" 
   android:orientation="vertical">

   <LinearLayout 
        android:id="@+id/layout_body"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="@drawable/login" 
        android:orientation="vertical">

      ......
   </LinearLayout>
   <View
        android:layout_width="fill_parent"
        android:layout_height="0dip"
        android:layout_weight="1" />
   <AnyLayout (you choose)
        android:id="@+id/layout_banner"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >
     ....
   </AnyLayout>
</LinearLayout>

或者您可以在 RelativeLayout 中设置整体

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@+id/layout_home"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:background="@drawable/background">

   <LinearLayout 
        android:id="@+id/layout_body"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="@drawable/login" 
        android:orientation="vertical">

      ......
   </LinearLayout>
   <AnyLayout (you choose)
        android:id="@+id/layout_banner"
        android:layout_alignParentBottom="true"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >
     ....
   </AnyLayout>
</RelativeLayout>
于 2012-09-20T07:04:37.323 回答