You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ScrollView嵌套的ListView加载Firestore数据无显示该如何修复?

问题核心原因

  1. Firestore数据请求是异步执行的,你初始化适配器时传入的是空列表,后续异步请求拿到数据添加到列表后,没有通知适配器刷新,ListView不知道有新数据需要渲染。
  2. ScrollView嵌套ListView时,ListView高度如果设为wrap_content会出现计算错误,无法正常展示内容。

修复步骤

1. 异步加载完成后通知适配器刷新

修改getData方法,数据全部添加到列表后调用刷新方法:

public void getData(){
    db.collection("ongoing")
            .whereEqualTo("creatorID", user.getUid())
            .get()
            .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
                @Override
                public void onComplete(@NonNull Task<QuerySnapshot> task) {
                    if(task.isSuccessful()){
                        usersList.clear(); // 先清空旧数据,避免后续重复加载出现重复条目
                        for(QueryDocumentSnapshot doc : task.getResult()){
                            usersList.add(new UserItem(doc.getData().get("buyerUsername").toString(),
                                          doc.getData().get("timestamp").toString(),
                                          doc.getData().get("offerID").toString(),
                                          doc.getData().get("isComplete").toString()));
                        }
                        // 新增这行,通知适配器数据已经更新,需要重新渲染列表
                        adapter.notifyDataSetChanged();
                    }
                }
            });
}

2. 修复ScrollView嵌套ListView的高度问题

修改布局文件中的ListView配置,二选一即可:

  • 方案1(简单测试用):给ListView设置固定高度+开启嵌套滚动
<ListView
    android:layout_width="match_parent"
    android:layout_height="300dp"
    android:nestedScrollingEnabled="true"
    android:id="@+id/listcontainer"/>
  • 方案2(长期推荐):把ListView替换为RecyclerView,本身支持嵌套滚动,性能更优,也不会出现高度计算异常。

可选检查项

  • 确认R.layout.userlayout布局文件存在,内部三个TextView的id和适配器中绑定的userlayoutUsername、userlayoutTimestamp、isComplete完全一致。
  • 可在getData的onComplete中加日志打印,确认查询条件正确、确实返回了有效数据,排除无数据的情况。

内容的提问来源于stack exchange,提问作者qwirrr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 06:48:00