¿Establecer TouchListener en la vista raíz sin anular los elementos táctiles de la vista infantil?
Mi actividad consta de un Framelayout (denominado fragment_content) donde sustituyo / añado diferentes fragmentos. Ahora establezco un TouchListener en este fragmento_contenido para implementar un "Deslizar dos dedos" (-> solo un movimiento de deslizamiento con dos dedos).
El problema que tengo es que tan pronto como mi Fragmento se extienda desde un ListFragment, se ignorará el TouchListener de fragment_content. Sé que puedo configurar un touchlistener para la vista de lista, pero que tengo que implementar la configuración de la vista de lista (-> scrolling, listItemClick).
¿Hay alguna manera de establecer un Touchlistener en mi vista raíz (-> FrameLayout) sin anular la configuración de mi vista secundaria (-> ListFragment)?
EDITAR
Escribí una clase MyTouchController que se extiende desde FrameLayout. En esta clase sobrescribo el método onInterceptTouch ().
En mi actividad que contentView es main.xml, inicio el Framelayout:
FrameLayout v = (FrameLayout) findViewById(R.id.main_fragment);
Ahora, tengo el siguiente problema: ¿cómo anular el método onInterceptTouchM de este main_fragment (-> FrameLayout)?
MyTouchController v = (MyTouchController) findViewById(R.id.main_fragment);
está lanzando un ClassCastEsception: android.widget.FrameLayout no se puede convertir a MyMenuController (incluso si declaro MyTouchController en diseño xml).
main.xml:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<FrameLayout
android:id="@+id/main_fragment"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
<FrameLayout
android:id="@+id/main_menu"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</FrameLayout>
EDIT 2 (solución)
main.xml:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<"pkg-name".MyTouchController
android:id="@+id/main_fragment"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
<FrameLayout
android:id="@+id/main_menu"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</FrameLayout>
Inflando el diseño en código:
MyTouchController v = (MyTouchController) findViewById(R.id.main_fragment);