android - OnClickListener无法在recyclerview中首次点击

zee*_*eks 8 java android onclicklistener android-recyclerview

我正在使用Android的聊天应用程序,我使用RecyclerView列出消息.

我已经编写了适配器,但是我在检测布局中的元素(本例中是TextView)被点击时遇到了问题.

这是我的适配器:

public class ChatRoomThreadAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {

    private class ViewHolder extends RecyclerView.ViewHolder {
        TextView message, timestamp;

        private ViewHolder(View view) {
            super(view);

            message = (TextView) itemView.findViewById(R.id.message); 
            timestamp = (TextView) itemView.findViewById(R.id.timestamp); 
        }

    }

    public ChatRoomThreadAdapter(Context mContext, ArrayList<Message> messageArrayList, String userId) {
        this.mContext = mContext;
        this.messageArrayList = messageArrayList;
        this.userId = userId;
    }

    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View itemView;
        itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.chat, parent, false);

        return new ViewHolder(itemView);
    }

    @Override
    public void onBindViewHolder(final RecyclerView.ViewHolder holder, int position) {

        ((ViewHolder) holder).message.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                if (((ViewHolder) holder).timestamp.getVisibility() == View.GONE) {
                    ((ViewHolder) holder).timestamp.setVisibility(View.VISIBLE);
                } else {
                    ((ViewHolder) holder).timestamp.setVisibility(View.GONE);
                }

            }
        });

    }

    @Override
    public int getItemCount() {
        return messageArrayList.size();
    }
}
Run Code Online (Sandbox Code Playgroud)

当前的onClick可以工作,但我必须单击两次message才能触发onClick.为了解决这个问题,我一直在寻找和尝试3天无休止的解决方案,但到目前为止,互联网上的解决方案都没有奏效.

kin*_*918 12

确保按钮上同时显示focusableInTouchModefocusable禁用.第一次单击将获得焦点,第二次单击将执行onClickListener.

.

  • 当您说“禁用按钮”时,您指的是哪个按钮? (2认同)