- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我为我的 RecyclerView
制作了这个 StaggeredGridLayout
:
代码如下:
@Override
public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, final int position) {
Photo photo = mPhotos.get(position);
TextView titleView = ((CellViewHolder) viewHolder).titleTextView;
titleView.setText(photo.getTitle());
TextView subTitleView = ((CellViewHolder) viewHolder).subtitleTextView;
subTitleView.setText(photo.getName());
Picasso.with(mContext).load(photo.getPhotoUrl()).into(((CellViewHolder) viewHolder).imageView);
ImageView userImageOverlay = ((CellViewHolder) viewHolder).userImageOverlay;
StaggeredGridLayoutManager.LayoutParams layoutParams = (StaggeredGridLayoutManager.LayoutParams) viewHolder.itemView.getLayoutParams();
if (position == 0 || position % 4 == 0) {
layoutParams.setFullSpan(true);
layoutParams.height = Math.round(Utils.convertDpToPixel(202.67f, mContext));
titleView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 21.67f);
subTitleView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 12.00f);
userImageOverlay.setVisibility(View.VISIBLE);
} else if ((position - 1) % 4 == 0) {
layoutParams.setFullSpan(false);
layoutParams.height = Math.round(Utils.convertDpToPixel(360.00f, mContext));
titleView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 15.00f);
subTitleView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 10.00f);
userImageOverlay.setVisibility(View.GONE);
} else {
layoutParams.setFullSpan(false);
layoutParams.height = Math.round(Utils.convertDpToPixel(180.00f, mContext));
titleView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 15.00f);
subTitleView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 10.00f);
userImageOverlay.setVisibility(View.GONE);
}
}
一切正常,除非我向上滚动它。它按位置降序绘制单元格,并在网格中留下空白空间:
有什么想法即使向上滚动也能保持相同的模式吗?
最佳答案
试试这个:
StaggeredGridLayoutManager manager = new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL);
manager.setGapStrategy(StaggeredGridLayoutManager.GAP_HANDLING_MOVE_ITEMS_BETWEEN_SPANS);
recyclerView.setLayoutManager(manager);
或:change position when scrolling
或:github项目Picasso/Glide-RecyclerView-StaggeredGridLayoutManager
关于android - 向上滚动时 StaggeredGridLayout 困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32311888/
我有一个 URL 列表,这些 URL 指向具有不同尺寸的图像。我想在交错的垂直网格中显示它们,拉伸(stretch)每个图像的宽度以占据一行并拉伸(stretch)高度以环绕缩放图像。一切都应该看起来
我为我的 RecyclerView 制作了这个 StaggeredGridLayout: 代码如下: @Override public void onBindViewHolder(RecyclerV
我需要在线性布局中显示交错网格。 为此,我在 android.support.v7.widget 的 RecyclerView 上使用了 StaggeredGridLayoutManager。问题是
我有一个包含 ImageView 的 recyclerview。但每个图像的底部都有额外的空间。额外的空间是红色背景,如屏幕截图中所示。我希望所有图像并排放置。 这是我的 Activity 中用于定义
我正在使用交错网格布局从数据库向回收者 View 显示数据。我遇到了一个问题,在从数据库中删除项目以及从适配器中删除位置后,我遇到了一些项目渲染问题。就像分散的所有在这个地方。这是我的代码 @Ove
我在我的Recycler View中使用StaggeredGridLayout 我需要什么: 我可以将回收器 View 分为两列,但我不知道如何将主单元格放在回收器 View 的顶部 我不确定,但也许
我有一个 StaggeredGridLayoutManager,它在一个 2 列宽的网格中加载 20 张包含图像(从缓存、网络或 Picasso 存储加载)的卡片。 问题: 目前,当您向下滚动列表时,
我需要从网络下载图片,为此我使用了 Glide。 下载图像后,它们出现在 Recycler Veiw 中。部分图像看起来不错,并且像这样填充所有单元格 但是有些图像在其他方面表现出奇怪的行为,看起来像
我是一名优秀的程序员,十分优秀!