Cri*_*mez 46 android android-layout android-recyclerview
我需要将每行中的元素居中,这样它们就像在这个模型中一样.我一直在寻找是否有任何布局以这种方式工作而不看.项目以行为中心.

这就是我现在在代码中看起来的样子.
Rav*_*dav 43
让recyclerview width到wrap_content与其容器的layout_gravity对center_horizontal
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<android.support.v7.widget.RecyclerView
android:id="@+id/recycrer_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:paddingLeft="16dp"
android:paddingRight="16dp" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
Raj*_*esh 32
拿LinearLayout在你RecyclerView的项目排布局然后给android:layout_gravity="center"到LinearLayout.
对于每一行图像,您必须采取不同的方式LinearLayout.
这是示例代码:
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="horizontal">
<ImageView
android:id="@+id/image1"
android:layout_width="64dp"
android:layout_height="64dp"
android:layout_marginRight="10dp"
android:layout_weight="1"
android:src="@drawable/image1" />
<ImageView
android:id="@+id/image2"
android:layout_width="64dp"
android:layout_height="64dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_weight="1"
android:src="@drawable/image2" />
<ImageView
android:id="@+id/image3"
android:layout_width="64dp"
android:layout_height="64dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_weight="1"
android:src="@drawable/image3" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
实现:
recycler.adapter = MyAdapter()
val layoutManager FlexboxLayoutManager( context: this)
layoutManager.justifyContent = JustifyContent.CENTER
layoutManager.alignItems = AlignItems.CENTER
layoutManager.flexDirection = FlexDirection. ROW layoutManager.flexWrap = FlexWrap.WRAP
my recycler.layout Manager = = layout Manager
Run Code Online (Sandbox Code Playgroud)

我假设您使用的LinearLayoutManager是RecyclerViewa- ListViewstyle式效果.在这种情况下,horizontal LinearLayout为每一行使用a ,android:gravity="center"以使其内容居中.
FlexboxLayout从com.google.android:flexbox图书馆使用。请注意flexwrap和justifyContent属性值。然后,layout_wrapBefore = true在视图上设置要在之前包装项目行。
<com.google.android.flexbox.FlexboxLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:flexWrap="wrap"
app:justifyContent="center">
<View ... />
<View app:layout_wrapBefore="true" ... />
<View ... />
</com.google.android.flexbox.FlexboxLayout>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
70188 次 |
| 最近记录: |