Установить TouchListener в корневой режим, не перекрывая при этом дочерний вид?
Моя активность состоит из одного Framelayout (названного фрагмент_контента), где я заменяю / добавляю разные фрагменты. Теперь я установил TouchListener для этого фрагмента_контента, чтобы реализовать «два пальца» (-> просто движение двумя пальцами).
Проблема, с которой я столкнулся, заключается в том, что, как только мой фрагмент выходит из ListFragment, TouchListener для frag_content будет игнорироваться. Я знаю, что могу установить touchlistener для просмотра списка, но я должен реализовать настройки просмотра списка (-> scrolling, listItemClick).
Есть ли способ установить Touchlistener для моего корневого представления (-> FrameLayout) без переопределения настроек моего дочернего представления (-> ListFragment)?
РЕДАКТИРОВАТЬ
Я написал класс MyTouchController, который расширяется от FrameLayout. В этом классе я переопределяю метод onInterceptTouch ().
В моей Деятельности, что contentView - это main.xml, я запускаю Framelayout:
FrameLayout v = (FrameLayout) findViewById(R.id.main_fragment);
Теперь у меня есть следующая проблема: как переопределить onInterceptTouchMethod этого main_fragment (-> FrameLayout)?
MyTouchController v = (MyTouchController) findViewById(R.id.main_fragment);
выбрасывает ClassCastEsception: android.widget.FrameLayout не может быть приведен к MyMenuController (даже если я объявляю MyTouchController в макете 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>
РЕДАКТИРОВАТЬ 2 (решение)
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>
раздувать макет в коде:
MyTouchController v = (MyTouchController) findViewById(R.id.main_fragment);