Я использую TwoWayView
https://github.com/lucasr/twoway-view
это работает нормально, но иногда пустое пространство появляется наверху при прокрутке вверх при загрузке изображений с сервера.
Мой экран xml:
<package.TwoWayView xmlns:android = "http://schemas.android.com/apk/res/android"
xmlns:app = "http://schemas.android.com/apk/res-auto"
android:id = "@+id/listTwoWay"
style = "@style/TwoWayView"
android:layout_width = "match_parent"
android:layout_height = "match_parent"
app:twowayview_layoutManager = "StaggeredGridLayoutManager"
app:twowayview_numColumns = "2"
app:twowayview_numRows = "2" />
Мой макет строки с фиксированной высотой и шириной
<?xml version = "1.0" encoding = "utf-8"?>
<RelativeLayout xmlns:android = "http://schemas.android.com/apk/res/android"
xmlns:app = "http://schemas.android.com/apk/res-auto"
android:layout_width = "300dp"
android:layout_height = "300dp"
android:background = "@color/color_white_gray">
<ImageView
android:id = "@+id/imgItemGrid"
android:layout_width = "300dp"
android:layout_height = "300dp"
android:layout_centerHorizontal = "true"
android:layout_centerVertical = "true"
android:scaleType = "fitXY"
android:src = "@drawable/artist_expand_bg1" />
</RelativeLayout>
и мой адаптер onbind выглядит следующим образом
@Override
public void onBindViewHolder(final SimpleViewHolder holder, final int position) {
final View itemView = holder.itemView;
//set imageview
Glide.with(mContext)
.load(dataList.get(position).getImage())
.listener(new RequestListener<Drawable>() {
@Override
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
holder.progressBar.setVisibility(View.GONE);
return false;
}
@Override
public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
holder.progressBar.setVisibility(View.GONE);
return false;
}
})
.into(holder.imgItemGrid);
final int dimenId;
final int span;
if (position == 0) {
dimenId = R.dimen.staggered_child_large;
span = 2;
} else {
dimenId = R.dimen.staggered_child_large;
span = 2;
}
final int size = mContext.getResources().getDimensionPixelSize(dimenId);
final StaggeredGridLayoutManager.LayoutParams lp =
(StaggeredGridLayoutManager.LayoutParams) itemView.getLayoutParams();
lp.span = span;
lp.height = size;
itemView.setLayoutParams(lp);
}
Я попытался программно установить ширину просмотра изображения и держателя просмотра, но не повезло. Спасибо за предложения или любую помощь.
наконец, я перешел на библиотеку Asymmentric recyclerview. и в этой библиотеке такой проблемы нет. Пожалуйста, перейдите по ссылке ниже.