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>

これはすべての種類のリスト項目で正常に機能しますが、上に置くと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>

そして、これがしっかりした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>
4

2 に答える 2

0

ふざけたくなければ、背景を黒一色でレイアウトしてみてはいかがでしょうか。

于 2013-07-11T07:57:06.737 に答える
0

フォーカス状態のセレクターにもう 1 つ項目を追加してみてください。

<item android:drawable="@drawable/list_pressed_holo_light"
          android:state_focused="true" />
  • state_pressedユーザーがタッチ、キーボード、またはマウスのいずれかを介してアイテムを押しているときに使用されます

  • state_focusedアイテムがフォーカス可能とマークされていて、キーボード/dpad/トラックボールなどのユーザーによってフォーカスを受け取る場合に使用されます。またはアイテムがタッチモードでフォーカス可能である場合

私は常に両方の状態を使用しています-両方が定義されている場合にのみ機能します。作業例はこちら

また、両方@drawableが正しいかどうかを確認してください

于 2013-07-11T09:19:18.757 に答える