У меня та же проблема, что и в этом сообщении.
http://i.imgur.com/FUapm2K.gif?1
StaggeredGridLayoutManager и движущиеся элементы
Однако Я не могу понять ответ, вот метод, который я вызываю в методе 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
?
в моем Fragment
, который содержит представление рециркулятора, которое я имею только для StaggeredGridLayoutManager, следующую строку кода:
gridLayoutManager = new StaggeredGridLayoutManager(3, StaggeredGridLayoutManager.VERTICAL);
Спасибо