0

我有一个 ListView ,其中每个项目在更多元素旁边都有一个 ScrollView (滚动视图不包装整个项目内容):

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/zuzu"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/tztz"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"/>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <LinearLayout 
            android:id="@+id/rtrt"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >

            <ImageView
                android:id="@+id/erer"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center" />
              </LinearLayout

        <ScrollView 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >

            <LinearLayout
                android:id="@+id/wewe"
                android:layout_width="wrap_content"
                android:layout_height="100dp"
                android:orientation="vertical" >

                <TextView
                    android:id="@+id/qwqw"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="center_vertical"/>
            </LinearLayout>

        </ScrollView>
    </LinearLayout>

</LinearLayout>

使用此配置,当我单击一个项目时,不会调用我的 ListActivity onItemClickListener:

getListView().setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            ...
        }
    });

移除包装的 ScrollView 后,按预期调用 OnItemClickListener。

我将 LinearLayout 包装在 Scrollview 中,因为如果底层布局有太多以编程方式添加的元素,我需要一个滚动条。

4

2 回答 2

0

ListView 权威指南 ListView的世界。在 Google I/O 2010 上的演讲。

一致回应的一个重要观点是 ScrollView 中的 ListView 或 ListView 中的 ScrollView 是一个坏主意。总有一种方法可以通过任何一个(XOR)实现您想要的;最好是列表视图。

ListView 是大多数(如果不是全部)android 应用程序中最常见的视图,它非常灵活,可以做一些非常令人印象深刻的事情。

于 2013-09-21T09:43:36.103 回答
0

首先,不确定卷轴中的卷轴是最佳解决方案。内部的 ScrollView 捕获触摸事件,这就是 ListView 无法获取事件的原因,如果您绝对必须这样做,则需要实现一个观察者并通知 ListView

于 2013-09-21T09:14:43.467 回答