0

我正在尝试在项目顶部创建带有蓝色叠加层的列表项。蓝色覆盖仅在用户触摸该项目时出现。所以我正在放置带有背景可绘制的视图以覆盖整个项目。

现在的问题是,这View根本不会被绘制。我可以将背景切换为简单的颜色,它不会出现。如果我改为将其更改为 TextView,则文本将显示但不会覆盖整个项目。我究竟做错了什么?

布局肯定会更新,如果我更改任何颜色,TextView它会相应地应用该更改。

这是列表项的布局。

<?xml version="1.0" encoding="utf-8"?>

..<!-- other stuff -->..

<View
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentTop="true"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:background="@drawable/item_overlay"
        android:duplicateParentState="true"
        android:visibility="visible"
        />

4

1 回答 1

2

1)您可以列出选择器,以及选项drawSelectoronTop

 <ListView android:listSelector="@drawable/list_selector" 
   android:drawSelectorOnTop="true">
</ListView>

设置drawSelectoronTop true 将导致drawable在列表项上绘制(ForeGround)

2) 如果列表选择器不能应用于您的特定设计,您可以使用 FrameLayout 作为列表项的 parentView,具有前景属性

android:foreground="@drawable/list_selector"

有关这方面的更多信息,您可以参考顶部的后绘制选择器 - 用于基本的线性布局?

于 2013-07-09T17:17:36.900 回答