Android listview将数据添加到顶部,而不是添加到底部
我有一个使用聊天的列表视图。当我发送新数据时,它会添加到listview的顶部。我尝试了使用listview的底层堆栈,但问题仍然存在。请检查下面的代码Android listview将数据添加到顶部,而不是添加到底部,android,listview,android-arrayadapter,Android,Listview,Android Arrayadapter,我有一个使用聊天的列表视图。当我发送新数据时,它会添加到listview的顶部。我尝试了使用listview的底层堆栈,但问题仍然存在。请检查下面的代码 <ListView android:id="@+id/messageContainer" android:layout_width="match_parent" android:layout_height="129dp" android:stackFromBotto
<ListView
android:id="@+id/messageContainer"
android:layout_width="match_parent"
android:layout_height="129dp"
android:stackFromBottom="true"
android:transcriptMode="normal"
tools:layout_editor_absoluteX="8dp"
tools:layout_editor_absoluteY="363dp" />
public void getChat() {
new AsyncTask<String, String, String>() {
protected void onPostExecute(String s) {
super.onPostExecute(s);
try {
JSONArray jsonarray = new JSONArray(s);
chatLst.clear();
for (int i = 0; i < jsonarray.length(); i++) {
JSONObject jsonobject = jsonarray.getJSONObject(i);
ChatMessage chatMesage = new ChatMessage();
if (!jsonobject.isNull("id")) {
chatMesage.setId(jsonobject.getString("id"));
}
if (!jsonobject.isNull("text")) {
chatMesage.setChattext(jsonobject.getString("text"));
}
if (!jsonobject.isNull("time")) {
chatMesage.setChattime(jsonobject.getString("time"));
}
chatLst.add(chatMesage);
}
if (messagesContainer.getAdapter() == null) {
adapter = new ChatAdapter(chatLst, OrderAndChat.this, serverOrderCreator);
messagesContainer.setAdapter(adapter);
} else {
adapter.notifyDataSetChanged();
}
progressDialog.hide();
} catch (JSONException e) {
e.printStackTrace();
}
}
}.execute();
}
public void getChat(){
新建异步任务(){
受保护的void onPostExecute(字符串s){
super.onPostExecute(s);
试一试{
JSONArray JSONArray=新JSONArray;
chatLst.clear();
for(int i=0;i
请帮助解决此问题。是否尝试将项目添加到列表中的位置0?类似于
chatLst.add(0,chatmasage)
apdater接受列表中项目的默认排序,如果您在列表的0位置插入一个项目,它将在列表视图的顶部可见,谢谢,伙计。它正在工作。刷新时有没有办法停止滚动listview?我会每隔30秒调用这个getChat函数。嗯。。也许可以尝试listView.setScrollContainer(false)