RecycleView与Constraint Layout冲突。(recycleview中的项目视图不匹配match_parent)

时间:2018-01-20 09:18:45

标签: android android-layout android-recyclerview android-constraintlayout

我有简单的实现循环视图。它显示一些项目。 每个项目都有如下布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="100dp"
android:background="#f00"
android:orientation="vertical"
android:paddingLeft="16dp"
android:paddingRight="16dp">
<TextView/>
</LinearLayout>

我发现问题是:

  1. 如果我们把RecycleView放在约束布局中 - &gt;项目视图将match_parent(使宽度填充父级) - &gt;确定

  2. 如果我们将RecycleView放在约束布局中 - &gt;项目视图似乎强制为wrap_content。 item view doesn't match parent

  3. 所以我的问题是如何解决这个问题? (如何在约束布局中使循环视图工作良好?)。

    更新 约束布局的视图 https://gist.github.com/quangson91/6fae50f5540f8624e71c9eb2f397dfe3

3 个答案:

答案 0 :(得分:0)

更改inflater

  View v = inflater.inflate(R.layout.my_view,null);

View v = inflater.inflate(R.layout.my_view, parent, false);

答案 1 :(得分:0)

在适配器中添加以下代码

   View view = LayoutInflater.from(mContext).inflate(R.layout.ssa, null);
  // below line to change match parent
 RecyclerView.LayoutParams lp = new RecyclerView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
    view.setLayoutParams(lp);
    return yourholder;

已更新

更改reclerview

  android:layout_width="0dp"

   android:layout_width="match_parent"

答案 2 :(得分:0)

我发现了问题。 问题是如果我将recycle -height的recycle-view设置为特殊值,如100dp(不是0dp)=&gt;循环视图中的项目视图不能匹配_parent。