【问题标题】:Layout Jerking when RecyclerView inside a ScrollViewRecyclerView 在 ScrollView 中时布局抖动
【发布时间】:2016-05-14 04:27:56
【问题描述】:

我在 ScrollView 中创建 RecyclerView 和 ListView 并且我遇到了滚动问题。滚动是 Jerking(无法平滑滚动),我知道 ScrollView 中的 RecyclerView 存在问题,因为布局滚动没有任何问题当滑动直到 ListView 存在,但是一旦 RecyclerView 项目进入布局,它就会开始抖动(只用手指滚动,当手指离开时没有正确的滚动)。这是xml中的代码

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fillViewport="true">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">


        <ListView
            android:id="@+id/lv_home_dropdown"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:divider="@color/colorWhite"
            android:dividerHeight="0.5dp"
            android:visibility="gone"/>

        <android.support.v7.widget.RecyclerView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/recycleView"
            android:background="@color/colorWhite">

        </android.support.v7.widget.RecyclerView>

    </LinearLayout>
</ScrollView>

【问题讨论】:

  • 制作高度为wrap_content 的ListView 会导致各种问题。将 ListView 从 ScrollView 中取出,您的问题就会消失。
  • @dharms:我需要在 ListView 中的内容之后跟踪 RecyclerView 中的数据。如果我将 ListView 设置为 match_parent,那将是一个问题!
  • 您可以将该视图作为页脚添加到 ListView。
  • 你想获得什么影响?可能有一种不涉及嵌套滚动视图的更简单方法。
  • @cyroxis:我在顶部有 2 个按钮(水平),一个我单击第一个按钮,列表视图将填充项目,回收视图将随着列表高度下降。第二个按钮也会发生同样的事情,相同的列表视图会填充不同的列表项,并且相同的回收视图将关闭!

标签: android android-layout android-recyclerview


【解决方案1】:
  1. 一直沿同一轴滚动的嵌套视图 安卓上有问题。最近谷歌增加了嵌套滚动 支持。为了在较旧的平台级别上使用此功能,您应该 使用支持库中的视图,例如 NestedScrollViewRecyclerView.

  2. ListView 不能以wrap_content 作为其高度。你可以做 如果你有最新版本的RecyclerView RecyclerView 支持库。另外,你已经在一个地方使用RecyclerView,你还不如独占使用。

  3. ListView 并不是真正意义上的“下拉菜单”。也许您应该考虑使用Spinner

【讨论】:

    【解决方案2】:

    我终于有了!! 只需在调用 RecyclerView 的类中添加以下代码行

    mRecyclerView = (RecyclerView)tmpView.findViewById(R.id.recycleView);
    mRecyclerView.setNestedScrollingEnabled(false);
    

    它对我有用!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多