Domanda

hacker Caro Android, vi allego una gestureListener riconoscere scaglia ad un ListView. Le righe della ListView costituiti da un LinearView e alcuni TextViews. Purtroppo, la scappatella non viene rilevato, quando comincia su uno dei TextViews:

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

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:background="#000000" >
        <TextView
            android:id="@+id/author"
            android:textSize="14sp"
            android:textColor="#ffffff"
            android:textStyle="bold"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"/>
        <TextView
            android:id="@+id/date"
            android:textSize="11sp"
            android:textColor="#eeeeee"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="right"/>
    </LinearLayout>
    <TextView
        android:id="@+id/text"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:paddingTop="5dp"
        android:paddingRight="5dp"
        android:paddingLeft="5dp"
        android:textColor="#333333"

        android:paddingBottom="5dp"
        android:textSize="14sp"
        android:layout_weight="2"/>
</LinearLayout>

Così, quando inizio la scappatella sul LinearLayout orizzontale, tutto funziona bene, ma quando comincio sul TextView in fondo, non succede nulla. Si containts testo modificabile, se quello potesse essere il problema ... Come si dice, l'ascoltatore è attaccato al ListView stesso.

Sarei felice se qualcuno potrebbe aiutare!

Jan Oliver

È stato utile?

Soluzione

Il TextView modificabile sta tornando true da onTouch(), impedendo l'evento venga elaborato dal LinearLayout più in alto nella gerarchia della vista.

Non c'è niente di arresto si allegando un OnTouchListener personalizzato al TextView di ignorare questo e passare l'evento al GestureDetector esistente.

textView.setOnTouchListener(new OnTouchListener() {
    public boolean onTouch(View arg0, MotionEvent ev) {             
        return gestureDetector.onTouchEvent(ev);
    }           
};
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top