Android 我的RecyclerView适配器未通过截取请求响应更新?
启动应用程序时,应显示聊天机器人发出的初始消息,但不显示。它从一个成功的截击请求开始,数据就在那里 然后在响应处理程序中调用:Android 我的RecyclerView适配器未通过截取请求响应更新?,android,android-recyclerview,observable,android-volley,Android,Android Recyclerview,Observable,Android Volley,启动应用程序时,应显示聊天机器人发出的初始消息,但不显示。它从一个成功的截击请求开始,数据就在那里 然后在响应处理程序中调用: @Override public void onResponse(JSONArray response) { try { for (int i = 0; i < response.length(); i++) {
@Override
public void onResponse(JSONArray response) {
try {
for (int i = 0; i < response.length(); i++) {
String[] text = ((JSONObject) response.get(i)).getString("text").split("'");
chat.addChat(new ChatBubbleModel(ChatBubbleModel.UserType.BOT, text[1]));
}
} catch (Exception e) {
}
}
但是shomehow所有来自Bot(聊天泡泡渲染)的请求只有在I f.e expand Keyboard(扩展键盘)的情况下才会更改,因此我认为会触发RecyclerView重新渲染,因为大小更改
这是我的RecyclerView.Adapter中的方法:
public void addBubble(ChatBubbleModel bubble) {
this.bubbles.add(bubble);
notifyItemChanged(bubbles.size() - 1);
}
但是如果在截击网络响应后调用它们,
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent,int viewType)
和public void onBindViewHolder(@NonNull RecyclerView.ViewHolder,int position)
方法不被调用。仅在键盘后使用。请使用notifyItemInserted(bubbles.size()-1)
而不是notifyItemChanged(bubbles.size()-1)代码>
您的addBubble
方法如下:
public void addBubble(ChatBubbleModel bubble) {
this.bubbles.add(bubble);
notifyItemInserted(bubbles.size() - 1);
}
我将在一分钟内尝试该修复,希望它是实际问题的修复
public void addBubble(ChatBubbleModel bubble) {
this.bubbles.add(bubble);
notifyItemInserted(bubbles.size() - 1);
}