Android 使用StaggedGridLayoutManager防止图片移动

Android 使用StaggedGridLayoutManager防止图片移动,android,android-recyclerview,android-imageview,staggeredgridlayoutmanager,Android,Android Recyclerview,Android Imageview,Staggeredgridlayoutmanager,我和这篇文章有同样的问题 但是我无法理解答案,下面是我在适配器的OnBindViewHolder()方法中调用的方法 private void setRealSize(Post post, int position) { Log.d(TAG, "setRealSize: width " + post.getWidthPost()); Log.d(TAG, "setRealSize: height : " + post.getHeightPost());

我和这篇文章有同样的问题

但是我无法理解答案,下面是我在适配器的
OnBindViewHolder()
方法中调用的方法

private void setRealSize(Post post, int position) {

        Log.d(TAG, "setRealSize: width " + post.getWidthPost());
        Log.d(TAG, "setRealSize: height : " + post.getHeightPost());

        int percentWidth = (maxWidth / 3);
        double scaleFactor = (double) percentWidth / (double) post.getWidthPost();

        Log.d(TAG, "setRealSize: factor " + scaleFactor);
        Log.d(TAG, "setRealSize: height " + scaleFactor * post.getHeightPost());

        picturePreview.getLayoutParams().width = percentWidth;
        picturePreview.getLayoutParams().height = (int) (scaleFactor * post.getHeightPost());

}

我的图片经过了完美的调整,并保持了原始的纵横比。但当我再次向上滚动时,我发现了移动的错误

即使我要为每张图片“存储”这些值,如果不使用
getLayoutParams().height
,我应该在何处以及如何再次使用这些值

在我的
片段
中,包含回收器视图,我只有以下代码行用于StaggedGridLayoutManager:

gridLayoutManager=新的StaggedGridLayoutManager(3,StaggedGridLayoutManager.VERTICAL)

即使我删除了
DefaultAnimator
,我们仍然可以看到这个变化,即使它做得更快,它还是很难看


谢谢

你找到什么了吗?不幸的是还没有,但我不会放弃。如果我找到答案,我会把它贴在这里