使用RecyclerView在CardView中放置不一致的对象

时间:2016-08-16 13:13:45

标签: android android-recyclerview android-cardview

编辑:

附加细节:奇怪的是,如果只有< = 3个元素,它只会出错。更重要的是,因为每个元素都可以滚动,所以布局将会修复"在重新表现时。

其他详细信息:链接到显示问题的演示视频。

Youtube Video - https://youtu.be/zlwi_Bz-HQo

所以下面的截图,是从Android工作室的相同运行中获取的。

在屏幕截图中,我有两个完全相同的卡片视图(直接来自.xml的虚拟数据,所以,我没有从java文件中分配数据)。

enter image description here 问题

  1. 如果你们看看每个CardView的右下角,那就是a 文字视图叫做"阅读更多"。

    奇怪的是,即使它们相同,它的位置也不同。 顺便说一句,它实际上是3张相同的牌。在第一次运行时,顶部"读取 更"也错误地放置,但它在我自动纠正自己 完全向下滚动并返回顶部。

  2. 第二个问题是卡顶部的5x4点。它与编辑器中看到的内容有所不同。
  3. enter image description here

    (编辑中的展示位置准确无误)

    知道如何处理这种不规则性吗?感谢。

    是的,我不确定你们是否需要代码,但以防万一,这里是在Pastebin上(缩短帖子长度)。

1 个答案:

答案 0 :(得分:1)

对RecyclerView使用match_parent。

像这样修复:

<android.support.v7.widget.RecyclerView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/recycler_view_timeline"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"/>

如果父视图的宽度为wrap_content,则在确定子视图的宽度之前无法确定父视图的宽度。 我不知道为父视图设置layout_width="wrap_content"和为子视图设置layout_width="match_parent"的结果。 我猜结果可能是错误的布局。 在你的布局中,同样的情况也会发生。 RecyclerViewlayout_width="wrap_content"CardViewlayout_width="match_parent"