我想要一个水平的RecyclerView,可以从中插入或删除其中的内容。这些项目应与中心对齐。而是将它们固定在左侧。
注意: 如其他问题所示,我无法使用android:layout_width=wrap_content
,因为RV大小的更改会导致动画行为异常(即,项目滑入从“ RV外”移除项目)。
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/my_recycler_view"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/other_view"
app:layout_constraintBottom_toTopOf="@id/another_view"/>
layoutManager = new
LinearLayoutManager(getContext(),LinearLayoutManager.HORIZONTAL, false);
recyclerView.setLayoutManager(layoutManager);
...
//updating the data on insert\remove:
DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(
new MyCallback(newItems, oldItems));
diffResult.dispatchUpdatesTo(myAdapter);
...
有什么想法吗?
答案 0 :(得分:0)
如果没有其他可以与之共享空间的空间,请让您的RecyclerView宽度match_parent。
喜欢以下
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:padding="10dp"
android:layout_marginBottom="20dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
然后,您在适配器中使用的项目布局如下所示
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:background="@drawable/ic_card1"
android:layout_width="match_parent"
android:layout_marginBottom="10dp"
android:layout_height="200dp"> <!--this can be any size-->
<TextView
style="@style/regularText"
android:textColor="@color/white"
android:textSize="15sp"
android:text="@string/cardNumber"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
好处是,您的回收站视图每列仅呈现一个itemlayout,因此我们要做的是扩展项目布局以填充整个列。
有任何疑问吗?
OPP !!!我想我想念翻译您的问题!!! *
如果我确实误解了第一个答案,则为新答案
我认为您需要一个GridLayoutManager。
同时,您需要知道将连续显示的项目数量。