我有回收视图如下:
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorWhite"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_vertical|center_horizontal"
android:textAlignment="center" />
<!-- items inside below RecycleView require to distribute evenly -->
<android.support.v7.widget.RecyclerView
android:id="@+id/my_recycle"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<!-- items inside above RecycleView require to distribute evenly -->
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
</layout>
以及我如何设置上述回收视图的项目:
我尝试尽可能使用线性布局(除非你告诉我这是不可能的)
LinearLayoutManager linearLayout = new LinearLayoutManager(mBinding.getRoot().getContext(), LinearLayout.HORIZONTAL, false);
mBinding.myRecycle.setLayoutManager(linearLayout);
myAdapter = new Adapter();
mBinding.myRecycle.setAdapter(myAdapter);
以下是我喜欢让它水平均匀分布的项目
<layout xmlns:android="http://schemas.android.com/apk/res/android" >
<data> <variable name="obj" type="com.myapp.test.model.entity.SomeData"/> </data>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical"
android:padding="4dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"/>
</LinearLayout>
</layout>
我读了几篇文章说要把0dp宽度和重量设为1但是, 使用该建议(上面的代码),我收到一个空的大空白空间(文本视图未显示),如下所示:
+-----------------------------------+
| |
| |
| |
| |
| |
| |
+-----------------------------------+
| the second recycle view |
| goes here |
+-----------------------------------+
如果我将宽度设置为换行并移除重量,则显示如下
+-----------------------------------+
|tv10|tv20|tv30|tv40| |
|tv11|tv21|tv31|tv41| |
+-----------------------------------+
| the second recycle view |
| goes here |
+-----------------------------------+
虽然我想要的是这样的:
+-----------------------------------+
| tv10 | tv20 | tv30 | tv40 |
| tv11 | tv21 | tv31 | tv41 |
+-----------------------------------+
| the second recycle view |
| goes here |
+-----------------------------------+
答案 0 :(得分:1)
尝试使用此布局管理器代替线性布局管理器,它将肯定可以工作。该布局管理器可确保所有项目按您需要的方式均匀分布。 https://gist.github.com/saurabhdhillon/d982627cb9296d0a2d00f1d664bdb8ac
答案 1 :(得分:0)
<强>已更新强>
试试这个。你应该制作&#39; LinearLayout&#39;作为项目布局的根视图
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:padding="4dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"/>
</LinearLayout>