LinearLayout 水平方向不适用于 RecycleView 元素
LinearLayout horizontal orientation doesn't work for RecycleView elements
我尝试将我所有的回收视图元素在蚀刻线上对齐 2,但它们在垂直线上仅对齐一个元素。
这是我的代码:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weightSum="2"
android:orientation="horizontal">
<androidx.cardview.widget.CardView
android:id="@+id/card_pdf"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:layout_marginTop="12dp"
android:layout_marginEnd="12dp"
android:layout_marginBottom="12dp"
android:layout_weight="1">
<TextView
android:id="@+id/tv_pdf_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="ceva"
android:textSize="25sp"
android:padding="6dp"/>
</androidx.cardview.widget.CardView>
</LinearLayout>
我得到的结果:
你好像没理解RecyclerView的概念。一个 ViewHolder 只包含 1 个项目(所以你创建的布局只影响一个 ViewHolder,而不是整个 RecyclerView,你永远不会实现你想要的)。
相反,将这些行添加到 xml 中的您的 RecyclerView:
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
app:spanCount="2"
GridLayoutManager
在网格中布置项目。 spanCount
定义该网格中将有多少列。
此外,您的项目布局中也不需要 LinearLayout
。您应该只有 CardView
和 TextView
.
如果你想在 2 列中并排设置 recyclerview 中的项目,那么你必须使用 recyclerview 网格布局管理器。例如:android-gridlayoutmanager-example
我尝试将我所有的回收视图元素在蚀刻线上对齐 2,但它们在垂直线上仅对齐一个元素。
这是我的代码:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weightSum="2"
android:orientation="horizontal">
<androidx.cardview.widget.CardView
android:id="@+id/card_pdf"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:layout_marginTop="12dp"
android:layout_marginEnd="12dp"
android:layout_marginBottom="12dp"
android:layout_weight="1">
<TextView
android:id="@+id/tv_pdf_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="ceva"
android:textSize="25sp"
android:padding="6dp"/>
</androidx.cardview.widget.CardView>
</LinearLayout>
我得到的结果:
你好像没理解RecyclerView的概念。一个 ViewHolder 只包含 1 个项目(所以你创建的布局只影响一个 ViewHolder,而不是整个 RecyclerView,你永远不会实现你想要的)。
相反,将这些行添加到 xml 中的您的 RecyclerView:
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
app:spanCount="2"
GridLayoutManager
在网格中布置项目。 spanCount
定义该网格中将有多少列。
此外,您的项目布局中也不需要 LinearLayout
。您应该只有 CardView
和 TextView
.
如果你想在 2 列中并排设置 recyclerview 中的项目,那么你必须使用 recyclerview 网格布局管理器。例如:android-gridlayoutmanager-example