回收者视图内动态视图的问题

2024-01-09

我正在使用回收器视图来显示包含图像网格布局的项目列表。网格布局动态添加到回收器视图适配器上“onBindViewHolder”方法内的列表项。现在的问题是,每次滚动时都会重新创建网格布局视图。我不希望在滚动时重新创建这些视图。怎么处理呢??

这是代码片段

 @Override
    public void onBindViewHolder(final PersonViewHolder personViewHolder, final int i) {

                GridLayout feedGrid = new GridLayout(context);
                LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(dipToPixels(context,HomePage.SCREEN_WIDTH),dipToPixels(context,HomePage.SCREEN_WIDTH));
                feedGrid.setLayoutParams(layoutParams);
                feedGrid.setColumnCount(1);

                imgArr = new ImageView[num];
                imgArr[0] = new ImageView(context);
                GridLayout.Spec row = GridLayout.spec(0, 1);
                GridLayout.Spec colspan = GridLayout.spec(0, 1);
                GridLayout.LayoutParams gridLayoutParam = new GridLayout.LayoutParams(row, colspan);
                gridLayoutParam.setGravity(Gravity.FILL);

                    Picasso.with(context).load(urlArr.get(0)).error(mDrawable).placeholder(mDrawable).into(imgArr[0], new Callback() {
                        @Override
                        public void onSuccess() {
                            personViewHolder.feedGridLayout.setVisibility(View.VISIBLE);
                            personViewHolder.loadImg.setVisibility(View.GONE);
                        }

                        @Override
                        public void onError() {
                            personViewHolder.feedGridLayout.setVisibility(View.GONE);
                            personViewHolder.loadImg.setVisibility(View.VISIBLE);

                        }

                    });



                feedGrid.addView(imgArr[0], gridLayoutParam);

                personViewHolder.feedGridLayout.removeAllViews();

                personViewHolder.feedGridLayout.addView(feedGrid);

}

这就是我解决一个非常相似的问题的方法problem https://stackoverflow.com/questions/31164051/recyclerview-with-multiple-dynamic-views-being-inflated-inside-row/31178567.

在您的适配器中,您覆盖 onViewRecycled 并删除 gridLayout 的视图,而不是 onBindViewHolder。

@Override
    public void onViewRecycled(PersonViewHolder personViewHolder) {
        super.onViewRecycled(personViewHolder);
        personViewHolder.feedGridLayout.removeAllViews();
    }

Remove personViewHolder.feedGridLayout.removeAllViews();来自你的 onBindViewHolder。

让我知道是否可以解决问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

回收者视图内动态视图的问题 的相关文章

  • 如何对这个字符串进行子串化

    我想得到这个字符串的 4 个部分 String string 10 trillion 896 billion 45 million 56873 我需要的4个部分是 10万亿 8960亿 4500万 和 56873 我所做的是删除所有空格 然
  • 如何在 Android 中保存相机的临时照片?

    在尝试从相机拍照并将其保存到应用程序的缓存文件夹中时 我没有得到任何可见的结果 应用程序不会崩溃 但在 LogCat 上 当我尝试将 ImageView src 字段设置为刚刚获取的文件的 URI 时 我收到此消息 09 17 14 03
  • 如何快速自动发送FCM或APNS消息?

    我正在开发一项后端服务 通过 FCM 或 APNS 向移动应用程序发送推送通知 我想创建一个可以在一分钟内运行的自动化测试 并验证服务器是否可以成功发送通知 请注意 我不一定需要检查通知是否已送达 只需检查 FCM 或 APNS 是否已成功
  • Sqlite数据库生命周期?关闭应用程序后它会被删除吗?

    我正在遵循一个简单的教程 该教程创建一个从 SQLiteOpenHelper 扩展的类 并创建一个包含一个表和 5 行的数据库 好的 但我需要更多地了解 android Sqlite 数据库 例如 如果应用程序关闭或手机关机会发生什么 数据
  • 在 Android Studio 中,为什么我必须在模拟器中单击“运行应用程序”两次才能启动应用程序?

    在 Android Studio 中 当我按播放按钮在 Android 模拟器上安装并运行应用程序时 大约 5 10 秒后 我在屏幕底部收到一条消息 显示 安装成功 但应用程序实际上并未运行在模拟器上 我必须再次按下播放按钮 这是非常令人沮
  • 卸载后 Web 应用程序不显示“添加到主屏幕”

    这是我第一次创建网络应用程序 我设法解决了这个问题 所以我得到了实际的 chrome 提示 将其添加到主屏幕 然后我从手机上卸载了该网络应用程序 因为我想将其展示给我的同事 但是 屏幕上不再出现提示 问题 这是有意为之的行为还是我的应用程序
  • java.lang.NoClassDefFoundError:org.apache.batik.dom.svg.SVGDOMImplementation

    我在链接到我的 Android LibGDX 项目的 Apache Batik 库时遇到了奇怪的问题 但让我们从头开始 在 IntelliJ Idea 中我有一个项目 其中包含三个模块 Main Android 和 Desktop 我强调的
  • 计数物体和更好的填充孔的方法

    我是 OpenCV 新手 正在尝试计算物体的数量在图像中 我在使用 MATLAB 图像处理工具箱之前已经完成了此操作 并在 OpenCV Android 中也采用了相同的方法 第一步是将图像转换为灰度 然后对其进行阈值计算 然后计算斑点的数
  • Android 中 Kotlin 协程的正确使用方式

    我正在尝试使用异步更新适配器内的列表 我可以看到有太多的样板 这是使用 Kotlin 协程的正确方法吗 这个可以进一步优化吗 fun loadListOfMediaInAsync async CommonPool try Long runn
  • 在 java 类和 android 活动之间传输时音频不清晰

    我有一个android活动 它连接到一个java类并以套接字的形式向它发送数据包 该类接收声音数据包并将它们扔到 PC 扬声器 该代码运行良好 但在 PC 扬声器中播放声音时会出现持续的抖动 中断 安卓活动 public class Sen
  • 是否必须删除 Intent extra?

    这可能是一个愚蠢的问题 但是是否有一条规则规定消费活动必须显式删除 Intent 额外内容 或者只有在回收 Intent 对象时才如此 换句话说 如果我总是通过执行以下操作来链接到下一个活动 Intent i new Intent MyCu
  • 无法访问 com.google.android.gms.internal.zzbfm 的 zzbfm 类文件未找到

    我正在将我的 Android 应用程序项目从GCM to FCM 为此 我使用 Android Studio 中的 Firebase 助手工具 并遵循 Google 开发人员指南中的说明 一切都很顺利 并将我的应用程序代码更改为FCM根据助
  • 如何使用 Cordova 获取当前安装的应用程序的版本?

    我已经找到了应用程序可用性插件 https github com ohh2ahh AppAvailability它主要检查用户是否在其设备上安装了某个应用程序 是否有可能获得应用程序的当前版本 开发者名称 重要 以及所有可能的信息 一般来说
  • 你的CPU不支持NX

    我刚刚下载了 android studio 但是我遇到了一个问题 当我运行它时 它说你的 cpu 不支持 NX 我应该怎么办 NX 或实际上是 NX 处理器位 是处理器的一项功能 有助于保护您的 PC 免受恶意软件的攻击 当此功能未启用并且
  • Android Studio 0.4.3 Eclipse项目没有gradle

    在此版本之前 在 Android Studio 中按原样打开 Eclipse 项目似乎很容易 无需任何转换 我更喜欢 Android Studio 环境 但我正在开发一个使用 eclipse 作为主要 IDE 的项目 我不想只为这个项目下载
  • 字符串数组文本格式化

    我有这个字符串 String text Address 1 Street nr 45 Address 2 Street nr 67 Address 3 Street nr 56 n Phone number 000000000 稍后将被使用
  • 一次显示两条Toast消息?

    我希望在一个位置显示一条 Toast 消息 并在另一位置同时显示另一条 Toast 消息 多个 Toast 消息似乎总是按顺序排队和显示 是否可以同时显示两条消息 是否有一种解决方法至少可以提供这种外观并且不涉及扰乱活动布局 Edit 看来
  • 如何在Xamarin中删除ViewTreeObserver?

    假设我需要获取并设置视图的高度 在 Android 中 众所周知 只有在绘制视图之后才能获取视图高度 如果您使用 Java 有很多答案 最著名的方法之一如下 取自这个答案 https stackoverflow com a 24035591
  • android sdk 的位置尚未在 Windows 操作系统的首选项中设置

    在 Eclipse 上 我转到 windows gt Android SDK 和 AVD Manager 然后弹出此消息 Android sdk 的位置尚未在首选项中设置 进入首选项 在侧边栏找到 Android 然后会出现一个 SDK 位
  • 如何将 google+ 登录集成到我的 Android 应用程序中?

    大家好 实际上我需要通过我的应用程序从 google 登录人们 现在我阅读了 google 上的文档 其中指出 要允许用户登录 请将 Google Sign In 集成到您的应用中 初始化 GoogleApiClient 对象时 请求 PL

随机推荐

  • CSS 边框半径,但像素化

    我想在 CSS 中创建一个圆形边框 放大时看起来像素化 这是圆形边框近距离的样子 https i stack imgur com T9Q2g jpg https i stack imgur com T9Q2g jpg 这就是我试图让它看起来
  • 使用 Groovy HTTPBuilder POST XML 数据

    我正在尝试使用 HTTPBuilder 类将 XML 数据发布到 URL 目前我有 def http new HTTPBuilder http m4m email protected cdn cgi l email protection a
  • 在 Rails 3 / devise 中使用请求标头中的 auth_token 而不是 POST/PUT 参数

    我需要在 Rails 3 1 API 中与最新版本的设计结合使用基于令牌的身份验证 到目前为止没有问题 现在我不想将 auth token 附加到客户端的 POST PUT 参数 而是将此令牌作为请求标头发送 如 HTTP X MYAPP
  • 活跃商家 - 未初始化常量 ActiveSupport::XmlMini_REXML::StringIO

    我有 activemerchant 1 16 0 和 Rails 3 0 5 我正在尝试构建一个基本代码来使用活跃商家与 PayPal 网关进行通信 if credit card valid or gateway purchase to d
  • Joomla 加载的旧版本 bootstrap

    我正在开发一个新网站 为此我安装了最新版本的 Joomla 3 1 1 我使用 Twitter Bootstrap 从头开始 创建了一个模板 我下载了最新版本的Bootstrap 并在模板的index php中加载了相关的javascrip
  • Emacs 中函数的注释

    我正在寻找一种方法来在 Emacs 中的函数上方生成和插入标题注释块 在任何模式下 注释的默认内容自动基于函数的签名 即 param 占位符的正确数量 Doxymacs 是一个不错的候选者 但我更喜欢另一种无需必要库的方法 谁能推荐一些其他
  • 传递对象的最佳实践

    我有一个简单的问题 假设我有一个包含大约 10 个属性的数据对象 并且我想将数据从我的对象传递到函数 大多数时候 我只需要接收函数中的这些值之一 并且也可以只传递该值 假设是一个 int 那么 始终发送整个对象与仅发送其中包含的值之一相比
  • 识别 UIImagePickerController 委托中的不同选择器

    我有一个带有几个按钮的视图 我用它们来呈现 UIImagePickerControllers 相机和媒体选择器 当我创建 UIImagePickerControllers 时 我给它们提供了不同的名称并以模式方式呈现它们 如下面的代码所示
  • 使用 linq vb.net 从数据表中检索不同的值

    我正在尝试从数据表中的特定列中检索所有不同的值 数据表中的列名称是 Count 我有 2240 行 计数 列中有 6 个不同的值 问题是 当我执行以下代码时 它给出的是行数而不是 6 个不同的值 Dim counts From row In
  • Pandas 多索引数据框 - 从多索引中的一个索引中选择最大值

    我有一个具有年和月多重索引的数据框 如下所示 Value Year Month 1 3 1992 2 5 3 8 1993 1 2 我试图选择每年的最大值并将其放入 DF 中 如下所示 Max Year 1992 5 1993 2 关于多索
  • 使用 HttpPost MultiPartEntityBuilder 上传照片

    我正在尝试将拍摄的照片上传到服务器 这就是我所做的 public JSONObject makePostFileRequest String url String photoFile try photoFile path tofile pi
  • SQLAlchemy 向我显示“AttributeError:类型对象‘用户’没有属性‘列’”

    我正在使用 python Flask SQLAlchemy 构建一个小项目 我制作了一个模型文件如下 start of models py from sqlalchemy import Column Integer String Seque
  • 编写 java.net.SocketImplFactory

    SocketImplFactory 的 javadoc 特别提到 应用程序通过更改创建套接字实现的套接字工厂 可以配置自身以创建适合本地防火墙的套接字 然而 为了连接到有问题的防火墙 需要一个真正的套接字来进行真正的连接 替换默认的 Soc
  • 如何使用 Geb/WebDriver 处理服务器身份验证

    我有一个网页 当我首先打开该网页时 它要求服务器身份验证 提供服务器身份验证后 它允许我导航该网站 我必须自动化该网页 但由于服务器身份验证 我无法继续前进 我如何在 Geb 或 Web 驱动程序中处理此服务器身份验证 尝试使用这个 htt
  • 从 python subprocess.Popen(command, stderr=subprocess.PIPE, stdout=subprocess.PIPE) 捕获 stderr

    我在这里多次看到这个帖子 但未能捕获命令中的故意错误 迄今为止我发现的最好的部分工作 from Tkinter import import os import Image ImageTk import subprocess as sub p
  • 尽管主题接下来调用,但指令订阅不会触发

    Plunkr https plnkr co edit KfPfVSbZm087uIPvFEkM p preview https plnkr co edit KfPfVSbZm087uIPvFEkM p preview 我有一个充当模式组件
  • 使用 Zend 进行领域驱动设计

    这个问题是我之前问题的延续zend 模型架构 https stackoverflow com questions 2122850 zend models architecture 非常感谢比尔 卡尔文 我读过一些书 包括这篇文章 http
  • 在 Python 中打印时处理 NoneType 对象的好方法

    如何在 Python 中打印 NoneType 对象 score can be a NonType object logging info NEW SCORE score 另外 为什么有时我会看到逗号而不是上面的 最好的方法是 loggin
  • 跟踪数组中的最小数字

    我试图跟踪最低数字的分数 如果我找到这些玩家的最低分数 我不希望他们在下一轮中再次参加比赛 我已经到了将那些低玩家价值存储到数组中的地步 但我只想将它们存储一次 for int i 0 i lt player length i for in
  • 回收者视图内动态视图的问题

    我正在使用回收器视图来显示包含图像网格布局的项目列表 网格布局动态添加到回收器视图适配器上 onBindViewHolder 方法内的列表项 现在的问题是 每次滚动时都会重新创建网格布局视图 我不希望在滚动时重新创建这些视图 怎么处理呢 这