Android: arrojar la detección de ListView con filas complejos
-
26-09-2019 - |
Pregunta
piratas informáticos Estimado Android, adjunto un gestureListener reconocer arroja a un ListView. Las filas de la ListView consisten en una LinearView y algunos TextViews. Por desgracia, la aventura no se detecta, cuando se inicia en una de las 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>
Por lo tanto, cuando comienzo a la aventura en el LinearLayout horizontal, todo funciona bien, pero cuando lo inicio en el TextView en la parte inferior, no pasa nada. Se containts texto editable, si eso podría ser el problema ... Como se dijo, el oyente está unido a la propia ListView.
Yo estaría contento si alguien podría ayudar!
Jan Oliver
Solución
Vista de Texto editable está volviendo true
de onTouch()
, impidiendo el caso de ser procesado por el LinearLayout
más arriba en la jerarquía de la vista.
No hay nada que le para unir un OnTouchListener
personalizado a su TextView
a modificar esto y pasar el caso a su GestureDetector
existente.
textView.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View arg0, MotionEvent ev) {
return gestureDetector.onTouchEvent(ev);
}
};