我有一个消息传递应用程序,用户可以在该应用程序内发送语音消息。当用户播放语音消息时,我正在像其他聊天应用程序一样更新该消息的进度条。当我更新进度条时,我每 50 毫秒调用一次 notifyDataSetChanged
,我注意到当我快速调用它时,我的 recyclerview 的 onclick 方法在停止调用 notifyDataSetChanged
之前不起作用。我该如何解决这个问题?
这里也有同样的问题:RecyclerView item onClick not working while being updated rapidly
我的 View
public class VoiceMessageViewHolder extends RecyclerView.ViewHolder {
public VoiceMessageViewHolder(@NonNull View itemView, OnVoiceMessageListener onVoiceMessageListener) {
super(itemView);
this.onVoiceMessageListener = onVoiceMessageListener;
playButton = itemView.findViewById(R.id.play_button);
pauseButton = itemView.findViewById(R.id.pause_button);
playButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onVoiceMessageListener.onVoiceMessagePlayClick(getAdapterPosition());
}
});
pauseButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onVoiceMessageListener.onVoiceMessagePauseClick(getAdapterPosition());
Log.d(TAG, "onClick: pause basılıd" + System.currentTimeMillis());
}
});
}
我的暂停按钮不起作用,因为在播放语音消息时我正在为进度条快速调用 notifyDataSetChanged。
最佳答案
而不是使用
notifyDataSetChanged
尝试使用
notifyItemChanged(int position)
N.B: notifyDataSetChanged
是结构变化事件,而 notifyItemChanged
是项目变化事件
关于android - Recyclerview 项目 onClick 在更新时不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59139345/