按下列表背景是透明的 - 希望它坚固

时间:2013-07-11 07:50:26

标签: android android-layout

我将此作为我在我的应用中使用的不同Views的背景:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/list_pressed_holo_light"
          android:state_pressed="true" />
    <item android:drawable="@drawable/listitem_border" />
</selector>

这适用于所有类型的列表项,但当我在GoogleMap上方时,它在按下时显示为透明:

enter image description here

我尝试将其放在具有白色背景的布局中,但这令人惊讶地导致全白View。如何在压制状态下拥有坚实的“全蓝”背景?

编辑:这是图片中显示的视图的XML(左下角):

<LinearLayout
    android:id="@+id/container"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginRight="80dp"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:background="@drawable/listitem_bg"
    android:clickable="true"
    android:orientation="horizontal"
    android:padding="15dp"
    android:visibility="invisible" >

    <ImageView
        android:id="@+id/iv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical" />

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_marginLeft="30dp"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/desc"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Hallo" />

        <TextView
            android:id="@+id/zipcity"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Hallo" />
    </LinearLayout>
</LinearLayout>

这是我试图拥有一个坚实的bg:

<LinearLayout
    android:id="@+id/container"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:background="#ffffff"
    android:layout_alignParentLeft="true"
    android:layout_marginRight="80dp"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/listitem_bg"
        android:clickable="true"
        android:orientation="horizontal"
        android:padding="15dp"
        android:visibility="invisible" >

        <ImageView
            android:id="@+id/iv"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical" />

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_marginLeft="30dp"
            android:orientation="vertical" >

            <TextView
                android:id="@+id/desc"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />

            <TextView
                android:id="@+id/zipcity"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Hallo" />
        </LinearLayout>
    </LinearLayout>
</LinearLayout>

2 个答案:

答案 0 :(得分:0)

如果不想愚蠢,如何将它放在具有纯黑色背景的布局中?

答案 1 :(得分:0)

尝试在选择器中添加另一项用于聚焦状态:

<item android:drawable="@drawable/list_pressed_holo_light"
          android:state_focused="true" />
    当用户通过触摸或键盘或鼠标按下项目时,使用
  • state_pressed

  • 如果项目标记为可聚焦并且它通过键盘/ dpad /轨迹球/等的用户接收焦点,则使用
  • state_focused。或者如果项目在触摸模式下可聚焦

我总是使用两种状态 - 只有在定义了两种状态时才适用于我。工作示例是here

同时确保你的@drawable都是正确的