Java StaggedGridLayoutManager:添加边距会使布局项目推到一边

Java StaggedGridLayoutManager:添加边距会使布局项目推到一边,java,android,android-layout,android-recyclerview,staggered-gridview,Java,Android,Android Layout,Android Recyclerview,Staggered Gridview,因此,我正在进行一个小项目,我想将StaggedGridLayoutManager添加到该文件中。如果我没有在布局中添加itemdecotor和边距或填充,它就会工作。一旦我添加了边距,它就会将列表推到一边。我附上一个截图来澄清这个问题 这是我的密码: recyclerView.setHasFixedSize(true); StaggeredGridLayoutManager gridLayoutManager = new StaggeredGridLayoutManager(2,

因此,我正在进行一个小项目,我想将
StaggedGridLayoutManager
添加到该文件中。如果我没有在布局中添加
itemdecotor
边距
填充
,它就会工作。一旦我添加了边距,它就会将列表推到一边。我附上一个截图来澄清这个问题



这是我的密码:

recyclerView.setHasFixedSize(true);
    StaggeredGridLayoutManager gridLayoutManager = new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL);
    recyclerView.addItemDecoration(new EqualSpaceItemDecoration(8));
    recyclerView.setLayoutManager(gridLayoutManager);
    recyclerView.setAdapter(adapter);
和项目的布局文件

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:orientation="vertical">
  <android.support.v7.widget.CardView
    android:id="@+id/wallpaper_item_card"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:cardBackgroundColor="@color/cardview_light_background"
    app:cardCornerRadius="4dp"
    app:cardElevation="4dp"
    app:cardPreventCornerOverlap="false">

    <ImageView
      android:id="@+id/wallpaper_item_image"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"/>

  </android.support.v7.widget.CardView>
</LinearLayout>


我环顾四周已经有一段时间了,没有找到解决问题的方法。感谢您的帮助。谢谢。

我不知道您是否已经找到了解决方案,但我会留下评论,以防其他人看到这个问题

我可以通过以下操作解决此问题:

layoutManager.setGapStrategy(StaggeredGridLayoutManager.GAP_HANDLING_NONE);
例如:

StaggeredGridLayoutManager layoutManager = new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL);          
layoutManager.setGapStrategy(StaggeredGridLayoutManager.GAP_HANDLING_NONE);
RecyclerView recyclerView = findViewById(R.id.recyclerView);
recyclerView.setLayoutManager(layoutManager);

我不知道你是否已经找到了解决方案,但我会留下评论,以防其他人看到这个问题

我可以通过以下操作解决此问题:

layoutManager.setGapStrategy(StaggeredGridLayoutManager.GAP_HANDLING_NONE);
例如:

StaggeredGridLayoutManager layoutManager = new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL);          
layoutManager.setGapStrategy(StaggeredGridLayoutManager.GAP_HANDLING_NONE);
RecyclerView recyclerView = findViewById(R.id.recyclerView);
recyclerView.setLayoutManager(layoutManager);
在kotlin使用中:

viewManager.gapStrategy = StaggeredGridLayoutManager.GAP_HANDLING_NONE
在kotlin使用中:

viewManager.gapStrategy = StaggeredGridLayoutManager.GAP_HANDLING_NONE

谢谢,实际上我并没有解决它,而是继续进行一些替代设计。但现在我知道如何修复它了。我可以给你一个布局选项。谢天谢地,我实际上并没有解决它,而是继续进行一些替代设计。但现在我知道如何修复它了。我可以给你一个布局选项。谢谢