Android 当不使用WrAPX内容时,RealdReVIEW在中间开始
我有一个Android 当不使用WrAPX内容时,RealdReVIEW在中间开始,android,kotlin,Android,Kotlin,我有一个RecyclerView在一个ConstraintLayout的内部,我需要将高度设置为0dp,这样它就尊重了它的约束,而不会进入其他视图。但是一旦加载了列表,它就会被设置到列表的中间。 如果我将高度设置为wrap_content,则问题已得到解决,但它看起来并不正确,因为它填充了屏幕,并位于其他视图下 我甚至尝试在框架布局中包装RV,这样我就可以将RV设置为包装内容,并且仍然使其尊重约束,但这需要我发布一个约束(中间的加载) 我知道我可以使用scrollToPosition(),但是当
RecyclerView
在一个ConstraintLayout
的内部,我需要将高度设置为0dp,这样它就尊重了它的约束,而不会进入其他视图。但是一旦加载了列表,它就会被设置到列表的中间。
如果我将高度设置为wrap_content
,则问题已得到解决,但它看起来并不正确,因为它填充了屏幕,并位于其他视图下
我甚至尝试在框架布局中包装RV,这样我就可以将RV设置为包装内容,并且仍然使其尊重约束,但这需要我发布一个约束(中间的加载)
我知道我可以使用scrollToPosition()
,但是当有图像出现在列表中时,我必须等到它们都加载完毕后才能调用它,这需要几秒钟的时间,用户会感到口吃
更新I最初将高度设置为0dp,这将导致列表开始滚动到中间。后来,我将其设置为包装内容并匹配父视图,这将导致列表跨越整个宽度或窗口,并与容器中的其他视图重叠 注意:
stackFromEnd = true
当stackFromEnd为true时,列表将从视图底部开始填充其内容。注意:
stackFromEnd = true
当stackFromEnd为true时,列表将从视图底部开始填充其内容。只需将您的回收视图高度设置为0dp
<ConstraintLayout>
<view above>
<android.support.v7.widget.RecyclerView
android:id="@+id/messagesRecyclerView"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintTop_toBottomOf="view above"
app:layout_constraintBottom_toTopOf="view below"
android:layout_marginBottom="10dp" />
<view below>
</ConstraintLayout>
只需将您的回收视图高度设置为0dp
<ConstraintLayout>
<view above>
<android.support.v7.widget.RecyclerView
android:id="@+id/messagesRecyclerView"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintTop_toBottomOf="view above"
app:layout_constraintBottom_toTopOf="view below"
android:layout_marginBottom="10dp" />
<view below>
</ConstraintLayout>
您已将约束设置为父视图的顶部和底部,因此视图将延伸到顶部和底部。您需要如下设置约束
<ConstraintLayout>
<view above>
<android.support.v7.widget.RecyclerView
android:id="@+id/messagesRecyclerView"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintTop_toBottomOf="@id/your_above_view_id"
app:layout_constraintBottom_toTopOf="@id/your_below_view_id"
android:layout_marginBottom="10dp" />
<view below>
</ConstraintLayout>
您已将约束设置为父视图的顶部和底部,因此视图将延伸到顶部和底部。您需要如下设置约束
<ConstraintLayout>
<view above>
<android.support.v7.widget.RecyclerView
android:id="@+id/messagesRecyclerView"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintTop_toBottomOf="@id/your_above_view_id"
app:layout_constraintBottom_toTopOf="@id/your_below_view_id"
android:layout_marginBottom="10dp" />
<view below>
</ConstraintLayout>
结果表明,如果将RV(RecyclerView)高度设置为0dp(也称为匹配约束),则还必须将宽度设置为0dp。这是一个android错误
这是修复它的代码:
<android.support.v7.widget.RecyclerView
android:id="@+id/messagesRecyclerView"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintTop_toBottomOf="[view above]"
app:layout_constraintBottom_toTopOf="[view below]"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:layout_marginBottom="10dp" />
结果表明,如果将RV(RecyclerView)高度设置为0dp(也称为匹配约束),则还必须将宽度设置为0dp。这是一个android错误
这是修复它的代码:
<android.support.v7.widget.RecyclerView
android:id="@+id/messagesRecyclerView"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintTop_toBottomOf="[view above]"
app:layout_constraintBottom_toTopOf="[view below]"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:layout_marginBottom="10dp" />
“但是一旦加载了列表,它就会被设置到列表的中间。”我不明白。另外,如果你把高度设为0,你能提供一些图像吗?如果你把高度设为0,那么当你把它改为包装内容时会发生什么?把你的recyclerview的高度设为0dp..@dglozano列表会开始滚动到中间,“但是一旦加载了列表,它就会被设置到列表的中间。”我不明白。此外,如果将高度设置为0,您能否提供一些图像,说明现在发生的情况,以及将其设置为“包装内容”时发生的情况?将recyclerview的高度设置为0dp..@dglozano列表将开始滚动到中间