Horizo​​ntalScrollView中的ListView和ScrollView中的Horizo​​ntalScrollView

时间:2016-12-23 10:02:40

标签: android listview

这是我的layout.xml:

<ScrollView
    android:id="@+id/scroll_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <ListView
            android:id="@+id/list_view"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="4dp"
            android:cacheColorHint="@android:color/transparent"
            android:divider="@null"
            android:dividerHeight="0dp" />

        <HorizontalScrollView
            android:id="@+id/h_scroll_view"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="4dp">

            <LinearLayout
                android:id="@+id/nest_list_view_container"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="8dp"
                android:orientation="horizontal">
            </LinearLayout>
        </HorizontalScrollView>
    </LinearLayout>
</ScrollView>

有2个列表视图。 第一个列表视图是list_view; 第二个列表视图在LinearLayout(nest_list_view_container)中动态添加。

第一个ListView将与setOnTouchListener方法一起正常工作, 但第二个ListView无法使用相同的方法滚动,只响应点击事件。

3 个答案:

答案 0 :(得分:1)

使用recyclerview而不是listview,并使用此代码顺利移动recyclerview:

with tb(ID,Site,[Date]) AS(
  select '1A','A','10/12/16' union all
  select '1A','B','11/12/16' union all
  select '2A','A','10/12/16' union all
  select '3A','A','09/12/16' union all
  select '3A','B','09/12/16' union all
  select '4A','A','11/12/16' union all
  select '5A','A','11/12/16' union all
  select '5A','B','11/12/16' union all
  select '6A','A','09/12/16' union all
  select '6A','B','10/12/16')
  select * from (
    SELECT *, count(0)OVER (PARTITION BY ID, Date) AS SameDateCount
    FROM tb
  ) as t where t.site='A' OR t.SameDateCount>1

我也喜欢使用:

          android:nestedScrollingEnabled="false"

在这种情况下

答案 1 :(得分:1)

绝对可以在scrollview中添加listview或recyclerview 因为我在我的项目中多次使用它。 一个例子:

  <android.support.v4.widget.NestedScrollView
            android:id="@+id/activity_Recipe_detail_scrollview"
            android:layout_width="match_parent"
            android:layout_height="match_parent">
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical">

                <LinearLayout
                    android:id="@+id/activity_Recipe_detail_content_container"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_horizontal"
                    android:orientation="vertical">

                    <android.support.v7.widget.CardView
                        android:id="@+id/activity_Recipe_detail_hashtag_card"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginBottom="@dimen/recipe_detail_card_margin_top"
                        android:layout_marginLeft="32dp"
                        android:layout_marginRight="32dp"
                        android:layout_marginTop="@dimen/recipe_detail_card_margin_top"
                        app:cardBackgroundColor="@android:color/white"
                        app:cardCornerRadius="@dimen/radius_recipe_detail_card"
                        app:cardElevation="1dp"
                        app:contentPadding="16dp">

                        <android.support.v7.widget.RecyclerView
                            android:id="@+id/activity_Recipe_detail_hashtag_list"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            tools:listitem="@layout/hashtag" />
                    </android.support.v7.widget.CardView>

                </LinearLayout>
            </LinearLayout>
        </android.support.v4.widget.NestedScrollView>

答案 2 :(得分:0)

你永远不应该将ListView保留在ScrollView内。在动态更新列表时,ListView本身可滚动。移动ListView上方的任何ViewGroup,然后重试。