当适配器升级,在底部没有显示信息
我不知道到底是哪里的问题,我需要的指导,所以我可以了解这个问题我在代码中看到的,我想添加的添加数据下到谷底,当用户点击该按钮。
mLayoutManager = new LinearLayoutManager(activity);
mLayoutManager.setStackFromEnd(true);
mLayoutManager.setReverseLayout(true);
adminchat.setLayoutManager(mLayoutManager);
adNewFullChat = new AdNewFullChat(activity , totalRestaurants);
adminchat.setAdapter(adNewFullChat);
mLayoutManager.smoothScrollToPosition(adminchat, null, totalRestaurants.size());
public void onClick(View view) {
String text = chattext.getText().toString();
if (text.length() > 0) {
final Chat chat = new Chat();
chat.setTag("admin");
chat.setTimestamp(format);
chat.setUserid(userid);
totalRestaurants.add(chat);
adNewFullChat.notifyDataSetChanged();
if (adNewFullChat.getItemCount() > 1) {
adminchat.getLayoutManager().smoothScrollToPosition(adminchat, null, adNewFullChat.getItemCount() - 1);
}
适配器代码:我完全不明白的地方的工作
public AdNewFullChat(Context context, List<Chat> messageList) {
mContext = context;
mMessageList = messageList;
}
@Override
public void onAttachedToRecyclerView(RecyclerView recyclerView) {
super.onAttachedToRecyclerView(recyclerView);
mRecyclerView = recyclerView;
}
@Override
public int getItemCount() {
return mMessageList.size();
}
// Determines the appropriate ViewType according to the sender of the message.
@Override
public int getItemViewType(int position) {
Chat message = (Chat) mMessageList.get(position);
if (message.getTag().equals("user")) {
return VIEW_TYPE_MESSAGE_RECEIVED;
} else if (message.getTag().equals("admin")) {
return VIEW_TYPE_MESSAGE_SENT;
}
return 0;
}
// Inflates the appropriate layout according to the ViewType.
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view;
if (viewType == VIEW_TYPE_MESSAGE_SENT) {
view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.my_message, parent, false);
return new SentMessageHolder(view);
} else if (viewType == VIEW_TYPE_MESSAGE_RECEIVED) {
view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.their_message, parent, false);
return new ReceivedMessageHolder(view);
}
return null;
}
// Passes the message object to a ViewHolder so that the contents can be bound to UI.
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
Chat message = (Chat) mMessageList.get(position);
switch (holder.getItemViewType()) {
case VIEW_TYPE_MESSAGE_SENT:
((SentMessageHolder) holder).bind(message);
break;
case VIEW_TYPE_MESSAGE_RECEIVED:
((ReceivedMessageHolder) holder).bind(message);
}
感谢添加代码。
您需要更新适配器上的mMessageList
名单。
更新totalRestaurants
不会修改在适配器你可以做什么是有这样的适配器的方法中的数据:
public void addElement(Chat chat) { mMessageList.add(chat) }
你这样称呼它:
adNewFullChat.addElement(chat);
而不是totalRestaurants.add(chat);
编辑:喔,我没有看到你正在使用qazxsw POI
如果删除该行的新元素将被添加至底部