【问题标题】:Recyclerview item onClick is not working while updatingRecyclerview 项目 onClick 在更新时不起作用
【发布时间】:2019-12-02 12:54:05
【问题描述】:

我有一个消息应用程序,用户可以在应用程序内发送语音消息。当用户播放语音消息时,我将该消息的进度条更新为其他聊天应用程序。当我更新进度条时,我每 50 毫秒调用一次 notifyDataSetChanged,我注意到当我快速调用它时,我的 recyclerview 的 onclick 方法在停止调用 notifyDataSetChanged 之前不起作用。我该如何解决这个问题?

同样的问题在这里:RecyclerView item onClick not working while being updated rapidly

我的viewHolder

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)
  • 是的,它奏效了。如果您想添加作为答案,我可以接受。

标签: android android-recyclerview


【解决方案1】:

而不是使用

notifyDataSetChanged

尝试使用

notifyItemChanged(int position)

注意: notifyDataSetChanged 是结构更改事件,而notifyItemChanged 是项目更改事件

【讨论】:

    猜你喜欢
    • 2018-01-07
    • 1970-01-01
    • 1970-01-01
    • 2016-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-06
    • 1970-01-01
    相关资源
    最近更新 更多