Pergunta

Caros hackers do Android, estou anexando um gesturelistener reconhecendo as flings a uma ListView. As linhas do ListView consistem em uma visão linear e algumas visitas de texto. Infelizmente, a aventura não é detectada, quando inicia em uma das visualizações de texto:

<?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>

Então, quando inicio o arremesso no LinearLayout horizontal, tudo funciona bem, mas quando o inicio na visão de texto na parte inferior, nada acontece. Ele contém texto editável, se esse pode ser o problema ... Como é dito, o ouvinte está anexado ao próprio ListView.

Eu ficaria feliz se alguém pudesse ajudar!

Jan Oliver

Foi útil?

Solução

Sua visão de texto editável está retornando true a partir de onTouch(), impedindo que o evento seja processado pelo LinearLayout mais alto a hierarquia de visualização.

Não há nada para impedir você de anexar um costume OnTouchListener para o seu TextView para substituir isso e passar o evento para o seu existente GestureDetector.

textView.setOnTouchListener(new OnTouchListener() {
    public boolean onTouch(View arg0, MotionEvent ev) {             
        return gestureDetector.onTouchEvent(ev);
    }           
};
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top