CardView 内的对象放置与 RecyclerView 不一致
Inconsistent object placement inside CardView with RecyclerView
编辑:
其他详细信息:奇怪的是,如果只有 <=3 个元素,它只会出现错误。更重要的是,因为每个元素都可以滚动,然后布局将在重新显示时 "fix" 本身。
其他详细信息:Link 显示问题的演示视频。
Youtube Video - https://youtu.be/zlwi_Bz-HQo
所以下面的屏幕截图是从 android 工作室的同一个 运行 截取的。
在屏幕截图中,我有 2 个完全相同的卡片视图(具有直接来自 .xml 的虚拟数据,因此,我没有分配来自 java 文件的数据)。
问题
如果你们看每个 CardView
的右下角,有一个
名为 "read more".
的文本视图
奇怪的是,即使它们是相同的,它的位置也不同。
顺便说一句,它实际上是 3 张相同的卡片。第一个运行,最上面的“读
更多”也放错了位置,但当我
完全向下滚动并回到顶部。
- 第二个问题是卡片顶部的 5x4 点。它的位置与从编辑器中看到的不同。
(编辑器上的位置准确)
知道如何处理这种违规行为吗?谢谢。
顺便说一句,我不确定你们是否需要代码,但以防万一,它在 Pastebin 上(以缩短 post 长度)。
- visit_note_timeline.xml(卡片视图)
- VisitNoteAdapter.java(如果您想知道,"visit note" 只是一个空的 class)
- MainActivity.java
- ratings_previews.xml(卡片右上角的 5x4 白点,在更多按钮下方)
- activity_main.xml
- content_main.xml
对 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"
的结果。
我猜结果可能是错误的布局。
在您的布局中,发生了相同的情况。
RecyclerView
有 layout_width="wrap_content"
,CardView
有 layout_width="match_parent"
。
编辑:
其他详细信息:奇怪的是,如果只有 <=3 个元素,它只会出现错误。更重要的是,因为每个元素都可以滚动,然后布局将在重新显示时 "fix" 本身。
其他详细信息:Link 显示问题的演示视频。
Youtube Video - https://youtu.be/zlwi_Bz-HQo
所以下面的屏幕截图是从 android 工作室的同一个 运行 截取的。
在屏幕截图中,我有 2 个完全相同的卡片视图(具有直接来自 .xml 的虚拟数据,因此,我没有分配来自 java 文件的数据)。
如果你们看每个
的文本视图CardView
的右下角,有一个 名为 "read more".奇怪的是,即使它们是相同的,它的位置也不同。 顺便说一句,它实际上是 3 张相同的卡片。第一个运行,最上面的“读 更多”也放错了位置,但当我 完全向下滚动并回到顶部。
- 第二个问题是卡片顶部的 5x4 点。它的位置与从编辑器中看到的不同。
(编辑器上的位置准确)
知道如何处理这种违规行为吗?谢谢。
顺便说一句,我不确定你们是否需要代码,但以防万一,它在 Pastebin 上(以缩短 post 长度)。
- visit_note_timeline.xml(卡片视图)
- VisitNoteAdapter.java(如果您想知道,"visit note" 只是一个空的 class)
- MainActivity.java
- ratings_previews.xml(卡片右上角的 5x4 白点,在更多按钮下方)
- activity_main.xml
- content_main.xml
对 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"
的结果。
我猜结果可能是错误的布局。
在您的布局中,发生了相同的情况。
RecyclerView
有 layout_width="wrap_content"
,CardView
有 layout_width="match_parent"
。