Frage

Liebe Android Hacker, Ich füge einen gestureListener flings zu einem Listview zu erkennen. Die Reihen des Listview bestehen aus einem LinearView und einigen Textviews. Leider ist das fling nicht erkannt wird, wenn es auf einem der Textviews beginnt:

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

Also, wenn ich das fling auf dem horizontalen Linearlayout beginnen, alles funktioniert gut, aber wenn ich es auf dem Textview am Boden beginnen, passiert nichts. Es containts editierbaren Text, wenn das das Problem sein könnte ... Wie gesagt, wird der Zuhörer an die Listview selbst angebracht.

Ich würde mich freuen, wenn jemand helfen könnte!

Jan Oliver

War es hilfreich?

Lösung

Ihre editierbare Textview ist true von onTouch() Rückkehr von der Veranstaltung nicht mehr durch die LinearLayout verarbeitet werden weiter oben in der Ansichtshierarchie.

Es gibt nichts hindern Sie eine benutzerdefinierte OnTouchListener zu Ihrem TextView Anbringen dieses außer Kraft zu setzen und um das Ereignis zu Ihrem bestehenden GestureDetector passieren.

textView.setOnTouchListener(new OnTouchListener() {
    public boolean onTouch(View arg0, MotionEvent ev) {             
        return gestureDetector.onTouchEvent(ev);
    }           
};
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top