0

我有一个ListView,列表的每一行都有TextViewImageView。我正在使用选择器,ImageView当我只单击ImageView行的选择器时,它会改变,但是当我单击行上的其他任何位置时,它不会ImageView受到影响。

选择器代码

<selector xmlns:android="schemas.android.com/apk/res/android" >
    <item
        android:drawable="@drawable/download_h"
        android:state_pressed="true"/>

    <item android:drawable="@drawable/download"/>
</selector>
4

1 回答 1

0

自定义列表行..

<LinearLayout android:id="@+id/RootView"        
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                >
    <TextView android:id="@+id/textView"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textSize="16sp"/>
    <ImageView android:id="@+id/img"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                /> 

现在在您的适配器中::

LinearLayout linearLayout = (LinearLayout) v.findViewbyid(R.id.RootView);

linearLayout.setOnTouchListener(new OnTouchListener() {                 
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                if(event.getAction()==MotionEvent.ACTION_DOWN && event.getAction()!=MotionEvent.ACTION_MOVE){
                    imgView.setBackgroundResource(R.drawable.pressed_state);
                }else
                    btnArrow.setBackgroundResource(R.drawable.normal_stat);
                return false;
            }
        });

它对我有用...希望这有帮助..

于 2012-10-04T09:24:15.103 回答