Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 滚动会在交错网格视图中产生间隙_Android_Scrollview_Android Recyclerview_Staggered Gridview - Fatal编程技术网

Android 滚动会在交错网格视图中产生间隙

Android 滚动会在交错网格视图中产生间隙,android,scrollview,android-recyclerview,staggered-gridview,Android,Scrollview,Android Recyclerview,Staggered Gridview,我的交错网格视图滚动布局存在间隙问题。我在这个gridview中使用分页。如果我继续向上和向下滚动,然后在我滚动到顶部后,在那里有一个间隙 活动代码 staggeredGridLayoutManager = new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL); staggeredGridLayoutManager.setGapStrategy(StaggeredGridLayoutManager.GAP_

我的交错网格视图滚动布局存在间隙问题。我在这个gridview中使用分页。如果我继续向上和向下滚动,然后在我滚动到顶部后,在那里有一个间隙

活动代码

staggeredGridLayoutManager = new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL);
staggeredGridLayoutManager.setGapStrategy(StaggeredGridLayoutManager.GAP_HANDLING_NONE);
search_recyclear_view.setLayoutManager(staggeredGridLayoutManager);
滚动侦听器

 search_recyclear_view.addOnScrollListener(new EndlessRecyclerOnScrollListener(staggeredGridLayoutManager) {
            @Override
            public void onLoadMore(int current_page) {
                //for no gap use this
                ((StaggeredGridLayoutManager)search_recyclear_view.getLayoutManager()).invalidateSpanAssignments();
                // do something...
                getData();
        }
图像适配器

 RelativeLayout.LayoutParams rlp = (RelativeLayout.LayoutParams) imageView.getLayoutParams();
            rlp.height = (int) (rlp.width * item.getImage_ratio());
            imageView.setLayoutParams(rlp);
            imageView.setHeightRatio(item.getImage_ratio());
            Picasso.with(mContext)
                    .load(baseuri + item.getImageName()).placeholder(PlaceHolderDrawableHelper.getBackgroundDrawable(position))
                    .into(imageView);
提前谢谢

StaggeredGridLayoutManager sGrid = new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL);
sGrid.setGapStrategy(StaggeredGridLayoutManager.GAP_HANDLING_MOVE_ITEMS_BETWEEN_SPANS);
试试看

交错网格可能在布局的边缘有间隙。为避免这些间隙,StaggedGridLayoutManager可以独立偏移跨距或在跨距之间移动项目。您可以通过setGapStrategy(int)控制此行为


任何人都知道如何解决这个问题。你真的应该解释一下你的代码,它是如何解决这个问题的。魔鬼在细节中。