2010-11-20 13 views
1

Sehr geehrte Android-Hacker, ich bin ein GestenListener zuzuordnen erkennt Flings zu einem ListView. Die Zeilen der ListView bestehen aus einer LinearView und einigen TextViews. Leider ist das fling nicht erkannt wird, wenn es auf einem der Textviews beginnt:Android: Schleudererkennung auf ListView mit komplexen Zeilen

<?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 sich auf dem Textview beim Start unten passiert nichts. Es enthält editierbaren Text, wenn das das Problem sein könnte ... Wie gesagt, der Listener ist an die ListView selbst angehängt.

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

Jan Oliver

Antwort

3

Ihre editierbare Textview kehrt true von onTouch(), von der Veranstaltung nicht mehr durch die LinearLayout der Hierarchieansicht höher verarbeitet werden.

Es gibt nichts, was Sie daran hindert, eine benutzerdefinierte OnTouchListener an Ihre TextView anzuhängen, um dies zu überschreiben und das Ereignis an Ihre bestehende GestureDetector zu übergeben.

textView.setOnTouchListener(new OnTouchListener() { 
    public boolean onTouch(View arg0, MotionEvent ev) {    
     return gestureDetector.onTouchEvent(ev); 
    }   
}; 
+0

Danke, das klingt vielversprechend. Ich werde das in ein paar Tagen versuchen. – janoliver

+0

Werke. Danke vielmals! – janoliver