android - 如何在服务类的特定位置动态更新recyclerview项目?
问题描述
我在回收站视图中有一个动画项目我正在尝试将它的可见性设置为从服务中可见和不可见,因为我已经成功创建了方法并且回收站视图正在被操纵但这里的主要问题是当我点击第一个回收站查看项目说在位置 1 我将我的动画视图的可见性设置为可见但是如果我单击另一个项目集 5 那么该项目的可见性将被正确设置但是我想让上一个单击的项目不可见我怎么能去做?
这是我在点击时设置可见性时的代码:
holder.itemView.setOnClickListener(View.OnClickListener {
holder.playanim.visibility = View.VISIBLE
})
这是我的 xml 项目:
<com.airbnb.lottie.LottieAnimationView
android:id="@+id/playinganim"
android:layout_marginTop="5dp"
android:layout_width="45dp"
android:layout_weight="20"
android:visibility="invisible"
app:lottie_autoPlay="true"
app:lottie_loop="true"
app:lottie_fileName="playing.json"
android:layout_toRightOf="@id/sname"
android:layout_height="45dp"
/>
解决方案
您需要添加一些额外的逻辑。使用变量存储最后点击位置,并检查当前项目位置是否等于最后检查位置。
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
holder.yourView.setVisibility(position == lastCheckedPosition ? View.VISIBLE : View.INVISIBLE);
holder.yourView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
holder.yourView.setVisibility(View.VISIBLE);
notifyItemChanged(lastCheckedPosition);
lastCheckedPosition = position;
}
});
super.onBindViewHolder(holder, position);
}
推荐阅读
- java - Android:在启动地图活动时,在 onCreate 方法之前调用 onMapReady
- python - 使用 Numpy 过滤数组字符串
- python - Python3 中的错误处理 - 在单词列表中查找特定字母的位置
- java - 我想从网站获取内容(HTML),在运行应用程序时出现此运行时错误,我无法解决此问题
- odoo - 不能在 attrs 中使用 many2many 字段?
- excel - 查找所有通过粘贴或拖动更改的单元格
- selenium - 如何创建添加日志消息的 BaseClass
- powerbi - DAX - 作为 SUMX 输出的文本
- javascript - 使用 javascipt 查找相关的 HTML 标签
- regex - 编写一个正则表达式来测试一个 * 最后只能允许的字符串