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
,我们仍然可以看到这个变化,即使它做得更快,它还是很难看
谢谢你找到什么了吗?不幸的是还没有,但我不会放弃。如果我找到答案,我会把它贴在这里