android - 网格回收器 View ,子 wrap_content

标签 android gridview android-recyclerview

我使用 RecyclerView有两列,我希望 subview 的高度根据其内容确定,
但默认情况下, subview 的大小会调整为行的最长高度。我在回收站 View 中有 ListView ,它被调整到它的 child 的高度。

                ItemAdapter adapter = (ItemAdapter) holder.mItemList.getAdapter();


                if(adapter == null){

                    adapter = new ItemAdapter(mItems.get(position));
                    holder.mItemList.setAdapter(adapter);
                }
                else
                    adapter.setItems(mItems.get(position));

                adapter.notifyDataSetChanged();
                holder.mItemList.invalidateViews();

                setListViewHeightBasedOnItems(holder.mItemList);

是否有任何简单的方法可以使 View 适合,或者我必须创建自己的两列布局,类似于 collection view在 iOS 中?

最佳答案

在我的例子中,我想在两列中查看两个大小相同的图像,我使用下面的代码做到了这一点。

// inner class to hold a reference to each item of RecyclerView 
    public static class ViewHolder extends RecyclerView.ViewHolder {

        public ImageView imgViewIcon;

        public ViewHolder(View itemLayoutView) {
            super(itemLayoutView);
            DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
            imgViewIcon = (ImageView) itemLayoutView.findViewById(R.id.item_icon);
            int colSpan = 2;
            imgViewIcon.getLayoutParams().height = (int) (displayMetrics.widthPixels / colSpan);
            imgViewIcon.getLayoutParams().width = (int) (displayMetrics.widthPixels / colSpan);

        }
    }

您可以放置​​ itemLayoutView 而不是 imgViewIcon,然后设置布局参数(宽度和高度)。

关于android - 网格回收器 View ,子 wrap_content,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29275163/

相关文章:

java - 通知数据集更改后回收器 View 未更新

android - Gradle 组装 Android 项目失败,找不到 R.txt

android - Flurry onEvent() 未发送自定义未捕获异常处理程序

java - 查找 RSA 参数

android - 具体时间通知

asp.net - 在 TemplateItem 中绑定(bind) CheckBox 的 Checked 属性

Android - 是否可以将滚动条的起始位置设置在 GridView 的填充顶部内?

c# - 如何使用 JQuery c# 在嵌套 GridView ASP.net 中使用日期时间选择器

java - 检测到不一致。无效的项目位置 0(偏移量 :-1). .. RecyclerView 在删除第一个项目时崩溃

android - 嵌套的 RecyclerView。如何防止父 RecyclerView 在子 RecyclerView 滚动时滚动?