gpt4 book ai didi

android - StaggeredGridView 布局膨胀问题

转载 作者:行者123 更新时间:2023-11-29 21:23:47 26 4
gpt4 key购买 nike

我正在使用 <a href="https://github.com/maurycyw/StaggeredGridView" rel="noreferrer noopener nofollow">StaggeredGridView</a>目前在我正在进行的项目中。但实际情况是 GridView 布局没有以正确的方式膨胀。当我的布局加载时,GridView 正在渲染,比方说我的平板电脑(10"Sony Xperia Z)中的 4 列处于横向模式,但有时在任意随机行号的某处,项目不是按顺序渲染而是在具有不均匀空隙空间的任意随机位置,如下图所示:

staggere_img1

当平板电脑处于纵向模式时,会出现相同类型的情况。但令人惊讶的是,当方向发生变化时,这个问题会自动解决。这是我现在面临的一个奇怪的问题。我已经进行了一些研究,但没有运气。

我也试过 This StaggeredGridView , 但同样的问题。

有人可以帮我吗?提前致谢。

仅供引用,我在我的 Gridview 适配器 中使用了 Viewholder 模式。

附言:

是修复 Fixed whitespace 与我的顾虑有关?我试过了,但没有任何改善。

最佳答案

在通过 picasso 从网络加载图像时,我在 StaggeredGridView 中遇到了同样的问题。

当您使用时:

Picasso.with(mContext).load(getItem(position)).into(holder.imageView);

在您的适配器中,picasso 为您的图像保留一个网格,SGV 为内容进行渲染。然后最后加载图像,SGV 再次渲染一次,图像改变它们在 SGV 中的位置。

解决方案:我检查了渲染所需图像的大小(我的情况是从json中读取的),以便在开始时为图像预留高要求的空间。请看例子:

public class StaggeredAdapter extends ArrayAdapter<String> {

private Context mContext;

public StaggeredAdapter(Context context, int textViewResourceId,
String[] objects) {
super(context, textViewResourceId, objects);
mContext = context;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;

if (convertView == null) {
LayoutInflater layoutInflator = LayoutInflater.from(getContext());
convertView = layoutInflator.inflate(R.layout.row_staggered_demo, null);

holder = new ViewHolder();
holder.imageView = (ImageView) convertView .findViewById(R.id.imageView1);
convertView.setTag(holder);
}

holder = (ViewHolder) convertView.getTag();

// Calculate size of the element.
int height = (position % 3 == 0) ? 600 : (1200 / (position % 3));
convertView.setLayoutParams(new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, height));

Picasso.with(mContext).load(getItem(position)).into(holder.imageView);

return convertView;
}

static class ViewHolder {
ImageView imageView;
}

关于android - StaggeredGridView 布局膨胀问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20400626/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com