当用户点击屏幕上的任意位置时,我想填充 recyclerview 项目。例如,在第一次触摸时加载第一个项目,在第二次触摸时加载第二个项目,在第三次触摸时加载第三个项目,依此类推。我不知道如何实现这个。
这是我的适配器代码
适配器
public class MessageAdapter extends RecyclerView.Adapter<MessageAdapter.ViewHolder>{
List<MessageModel> list;
Context context;
public MessageAdapter(List<MessageModel> list, Context context) {
this.list = list;
this.context = context;
}
@NonNull
@Override
public MessageAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(context)
.inflate(R.layout.chatbubble, viewGroup, false);
ViewHolder myHolder = new ViewHolder(view);
return myHolder;
}
@Override
public void onBindViewHolder(@NonNull MessageAdapter.ViewHolder viewHolder, int i) {
MessageModel model = list.get(i);
if(model.getSender().equals("left")){
viewHolder.left.setText(model.getText());
viewHolder.right.setVisibility(View.GONE);
viewHolder.middle.setVisibility(View.GONE);
} else if(model.getSender().equals("right")){
viewHolder.right.setText(model.getText());
viewHolder.middle.setVisibility(View.GONE);
viewHolder.left.setVisibility(View.GONE);
} else {
viewHolder.middle.setText(model.getText());
viewHolder.left.setVisibility(View.GONE);
viewHolder.right.setVisibility(View.GONE);
}
}
@Override
public int getItemCount() {
return list.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
TextView left, right, middle;
public ViewHolder(@NonNull View itemView) {
super(itemView);
left = itemView.findViewById(R.id.message_incoming);
right = itemView.findViewById(R.id.message_outgoing);
middle = itemView.findViewById(R.id.message_middle);
}
}
}
最佳答案
在保存 RecyclerView
的 Activity
中,执行以下代码更改。
添加
onClickListener
或onTouchListener
(无论您喜欢哪个RecyclerView
)。recyclerView.setOnClickListener()
或recyclerView.setOnTouchListener()
添加代码以将项目添加到上述事件监听器中的
RecyclerView
中。yourList.add("您的元素");
适配器.notifyItemInserted(intpositionAtWhichItemWasInserted);适配器.notifyDatasetChanged();
//由于某种原因,我无法格式化上面的代码 fragment 。
确保在将项目添加到 RecyclerView 列表后调用
notifyItemInserted()
或notifyDatasetChanged()
。
关于java - 当用户触摸屏幕上的任意位置时,如何一一填充回收器 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56445734/