当我检测到listview行上的点击时,Imageview正在检测点击

时间:2014-12-17 09:04:22

标签: android xml android-layout

发生了什么:我在listview的适配器中有btnFavId(ImageView)

发生了什么

  1. 当我点击我正在检测的行时,点击btnFavId(ImageView)
  2. 我怎样才能避免这种情况,以便只有点击btnFavId(ImageView)i 在btnFavId(ImageView)
  3. 上获取点击事件

    adapter.xml

    <?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="wrap_content"
        android:descendantFocusability="beforeDescendants"
        android:orientation="vertical"
        android:paddingBottom="10dp"
        android:paddingLeft="5dp"
        android:paddingRight="5dp"
        android:paddingTop="10dp" >
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical" >
    
            <TextView
                android:id="@+id/txtMsgNameId"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:ellipsize="end"
                android:paddingRight="10dp"
                android:singleLine="true"
                android:text="Name"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:textColor="@android:color/black"
                android:textSize="14sp" />
        </LinearLayout>
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >
    
            <LinearLayout
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:orientation="vertical" >
    
                <TextView
                    android:id="@+id/txtLocationId"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Location:"
                    android:textAppearance="?android:attr/textAppearanceSmall"
                    android:textSize="12sp" />
    
                <TextView
                    android:id="@+id/txtCategoryId"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Category:"
                    android:textAppearance="?android:attr/textAppearanceSmall"
                    android:textSize="12sp" />
    
                <TextView
                    android:id="@+id/txtAvailId"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Availability:"
                    android:textAppearance="?android:attr/textAppearanceSmall"
                    android:textSize="12sp" />
            </LinearLayout>
    
            <LinearLayout
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:gravity="center"
                android:orientation="vertical" >
    
                <RatingBar
                    android:id="@+id/rtngId"
                    style="?android:attr/ratingBarStyleSmall"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:numStars="5" />
            </LinearLayout>
    
            <LinearLayout
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:gravity="center"
                android:orientation="horizontal" >
    
                <ImageView
                    android:id="@+id/btnFavId"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:background="@drawable/heart_blue" />
    
                <ImageView
                    android:id="@+id/btnPhoneId"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="20dp"
                    android:background="@drawable/phone_red" />
            </LinearLayout>
        </LinearLayout>
    
        <TextView
            android:id="@+id/serviceProviderId"
            android:layout_width="0dp"
            android:layout_height="0dp" />
    
    </LinearLayout>
    

    search.xml

    <ListView
        android:id="@+id/lst"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:focusable="false" >
    </ListView>
    

1 个答案:

答案 0 :(得分:0)

因为您的ImageView正在获得焦点。这就是为什么它检测到你的xml文件中的ImageView的click.Set focusable false。它将工作.ex -

android:focusable="false"