【发布时间】:2016-02-10 02:38:29
【问题描述】:
我有一个水平 recyclerview(带有一个 LinearLayoutManager),它的子项有一个包含在 relativelayout 中的 imageview。 recyclerview 具有三个包含子项的水平行。当 recyclerview 滚动时,我正在使用来自 http 调用的响应更新数据集,并在 http 响应回调中调用 notifydatasetChanged。如果 recyclerview 子项的高度和宽度是固定值(例如 150dp、84dp),则 recyclerview 的行为符合预期,即加载新项目并保持在相同的滚动位置,但如果我将 recyclerview 子项的高度和宽度设置为 match_parent 和wrap_content,recyclerview 完全刷新并滚动到第一个位置。为什么会这样? 注意:我已经检查了其他类似的关于 SO 的问题,但没有一个提供可行的解决方案。
main_layout
<android.support.v7.widget.RecyclerView
android:id="@+id/grid_recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="110dp"
android:layout_marginLeft="15dp"
android:layout_marginTop="80dp"
android:background="@color/transparent"
android:outlineProvider="bounds"
android:elevation="8dp"
android:padding="0dp"
android:scrollbars="none" />
....
recycler_view_child_item
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="0dp">
<ImageView
android:id="@+id/thumbnail"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:adjustViewBounds="true"
android:maxWidth="126dp"
android:maxHeight="225dp"
android:padding="0dp"/>
</RelativeLayout>
【问题讨论】:
-
你找到解决办法了吗?
标签: android android-layout android-activity android-recyclerview