使用ListView作为TextView的背景

时间:2012-08-21 18:27:33

标签: android android-listview textview

我有以下布局,主要包含:

相对布局,用作Textview和按钮的标题。

和Listview。

我想将上面相对布局的“标题”设置为透明,并在用户向下滚动列表视图时显示列表视图。

我知道如何使布局透明,但我不知道如何将listview显示为“标题”的背景。

<?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" >




        <RelativeLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/buttonlayout2"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"

            android:orientation="horizontal"
           android:background="#FFDBE2ED"
             android:paddingBottom="0dp"
              android:paddingTop="0dp" 
             >
          <TextView
                android:id="@+id/txtTest"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerHorizontal="true"  
                android:gravity="center_vertical" 
                android:layout_centerVertical="true"
                android:paddingLeft="0dp"
                android:text="@string/list_header"
                android:textColor="#000000"
                android:textSize="25sp"
                 android:textStyle="bold">
            </TextView>



            <Button
                android:id="@+id/btnClear"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginBottom="0px"
                android:layout_marginLeft="10px"
                android:layout_marginRight="3px"
                android:layout_marginTop="6px"
                android:height="0dp"
                android:text="Clear"
                android:textSize="15sp"
                android:width="70dp"
                 android:layout_alignParentRight="true"
                  >
            </Button>
       </RelativeLayout>

    <ListView
        android:id="@+id/mylist1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_above="@+id/form"
        android:layout_alignParentTop="true" >
    </ListView>



</LinearLayout>

screenshot

2 个答案:

答案 0 :(得分:2)

您使用LinearLayout作为根容器,并且在线性布局中,视图一个放在另一个上,因此您不能将一个视图重叠在另一个视图上。如果想要重叠效果,可以使用FrameLayout或RelativeLayout作为根容器 使用RelativeLayout是一个更好的选择。
以下是此示例代码:

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

    <ListView
        android:id="@+id/list"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >
    </ListView>

    <Button
        android:id="@+id/view"
        android:layout_width="fill_parent"
        android:layout_height="100dp"
        android:background="#00cc0000"
        android:layout_alignParentTop="true" />
</RelativeLayout>

此处按钮与列表视图重叠。

我希望这会有所帮助:)

答案 1 :(得分:1)

尝试移动RelativeLayout内部的ListView,作为第一个元素(这可以确保它位于后面)。这样,其他视图就在ListView的顶部,如果你使它们透明,你应该得到所需的效果! 哦,你应该让ListView然后填充RelativeLayout:

<ListView
    android:id="@+id/mylist1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentTop="true" >
</ListView>

,并使RelativeLayout填满屏幕:

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