【问题标题】:Use ListView as background of TextView使用 ListView 作为 TextView 的背景
【发布时间】:2012-08-21 18:27:33
【问题描述】:

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

相对布局,与Textview和按钮一起作为标题。

和列表视图。

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

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

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

【问题讨论】:

    标签: android android-listview textview


    【解决方案1】:

    您正在使用 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>
    

    这里的按钮与列表视图重叠。

    我希望这会有所帮助:)

    【讨论】:

    • 谢谢...我试过了,但我收到错误:E/AndroidRuntime(393): java.lang.RuntimeException: Unable to start activity ComponentInfo{.MessagesActivity}: java. lang.ClassCastExce 选项:android.widget.TextView
    【解决方案2】:

    尝试将 ListView 作为第一个元素移动到 RelativeLayout 中(这样可以确保它位于后面)。这样,其他视图就在 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"
    ...
    

    【讨论】:

    • 我收到错误:java.lang.ClassCastExcetion: android.widget.TextView
    • 嗯,很奇怪。您是否在布局中多次使用 id?你到底想投什么?我假设您使用 findViewById 调用?
    猜你喜欢
    • 1970-01-01
    • 2011-06-30
    • 2012-10-29
    • 1970-01-01
    • 2020-10-28
    • 2017-01-12
    • 1970-01-01
    • 1970-01-01
    • 2017-12-30
    相关资源
    最近更新 更多