1

我将此用作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>

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

在此处输入图像描述

我尝试将它放在具有白色背景的布局中,但这令人惊讶地导致全白色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>

这是我尝试拥有一个坚实的背景:

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

2 回答 2

0

尝试在选择器中再添加一项以获得焦点状态:

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

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

我总是同时使用这两种状态——只有当它们都被定义时它才对我有用。工作示例在这里

还要确保你@drawable的两个都是正确的

于 2013-07-11T09:19:18.757 回答
0

不想傻了,把它放在一个纯黑色背景的布局中怎么样?

于 2013-07-11T07:57:06.737 回答