在FrameLayout内的ListView上滑动不起作用

时间:2016-05-19 09:32:04

标签: android android-layout listview swipe ontouchlistener

在我的android-app中,我有一个包含FrameLayout的布局,其中包含GridView。 每个网格单元由一个RelativeLayout组成,其中包含TextViewListView

现在我试图向右和向左滑动。为此,我根据SO问题forEach()实施了OnSwipeTouchListener并将其添加到FrameLayout

现在,一切正常。除非我要滑过ListView。如果我在ListView上滑动,该应用就无法执行任何操作。我认为这是因为ListView以某种方式捕获TouchEvents本身,而不让我的活动知道根本就有TouchEvent。

我的布局如下:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.Test"
    android:id="@+id/frameLayout">

    <GridLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:columnCount="16"
        android:rowCount="8"
        android:id="@+id/grid">

        <RelativeLayout
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:text="Large Text"
            android:id="@+id/ll3"
            android:layout_row="2"
            android:layout_column="1"
            android:orientation="horizontal" >

            <TextView
                android:textAppearance="?android:attr/textAppearanceLarge"
                android:text="Montag"
                android:textSize="40px"
                android:background="#66ff66"
                android:textStyle="bold"
                android:layout_height="55px"
                android:id="@+id/tv1"
                android:layout_width="match_parent" />

            <ListView
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="#ffffff"
                android:layout_below="@+id/tv1"
                android:id="@+id/l1">
            </ListView>

        </RelativeLayout>

    </GridLayout>

</FrameLayout>

我像这样设置OnSwipeTouchListener:

frameLayout.setOnTouchListener(new OnSwipeTouchListener(this));

我想我错过了ListView - 侧面的内容,就像在ListView上禁用触摸一样。

有没有人遇到这个问题或知道解决方案吗?

1 个答案:

答案 0 :(得分:0)

您不能将滑动与ListView滚动结合使用。 那是因为父(FrameLayout)方法onInterceptTouchEvent返回false,而你的FrameLayout不希望再接收任何事件,因为ListView是滚动容器。

你可以扩展FrameLayout&amp;在onInterceptTouchEvent方法中做一些特殊的事情来实现你的目标