Android背景选择器会对其视图外的触摸作出反应

时间:2014-01-14 14:07:28

标签: android android-layout android-view

我有以下布局可以在屏幕上均匀缩放4个视图:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:orientation="vertical" >

        <include
            android:id="@+id/one"
            android:layout_width="wrap_content"
            android:layout_height="0dp"
            android:layout_weight="1"
            layout="@layout/item" />

        <include
            android:id="@+id/two"
            android:layout_width="wrap_content"
            android:layout_height="0dp"
            android:layout_weight="1"
            layout="@layout/item" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:orientation="vertical" >

        <include
            android:id="@+id/three"
            android:layout_width="wrap_content"
            android:layout_height="0dp"
            android:layout_weight="1"
            layout="@layout/item" />

        <include
            android:id="@+id/four"
            android:layout_width="wrap_content"
            android:layout_height="0dp"
            android:layout_weight="1"
            layout="@layout/item" />
    </LinearLayout>

</LinearLayout>

include中使用的item.xml如下所示:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/root"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="8dp" >

    <RelativeLayout
        android:id="@+id/bg_layout2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:background="@drawable/bg_selector" >

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_centerVertical="true"
            android:layout_margin="8dp"
            android:ellipsize="end"
            android:padding="4dp"
            android:singleLine="true"
            android:text="Headline"
            android:textAppearance="@style/SmallTextBold"
            android:textColor="#ffffff" />
    </RelativeLayout>

</RelativeLayout>

结果看起来像我期望的那样:

enter image description here

问题在于,当我触摸其中一个项目/视图时,所有背景都会发生变化,它们都会对触摸一个项目/视图作出反应:

enter image description here

这可能是什么问题?它与包含有关吗?

编辑:我刚刚将<include>替换为所包含的item.xml布局的实际内容,并为这些布局提供了唯一的ID,但问题仍然存在。

EDIT2:我多次清理我的项目,但无济于事。我继续玩布局,无济于事。通过GIT将所有内容重置为我开始使用的内容,现在它正在运行。很奇怪。

1 个答案:

答案 0 :(得分:1)

您的代码中的点击管理器可能会在您包含的每个项目上指向相同的ID。

尽量不要使用包含或代码自己的自定义视图。