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

Android应用UI加载异常:需调整窗口或切换悬浮窗才显示

问题:Android应用启动后UI不自动加载,仅调整窗口/悬浮窗时才显示

应用入口已改为LoginActivity,启动后跳转至MainActivity,但MainActivity的RecyclerView内容不会自动加载,只有调整窗口大小或切换悬浮窗模式时才会显示列表数据。

问题分析

你的MainActivity中,Firebase数据库的onDataChange回调里更新了userList,但没有通知RecyclerView的Adapter数据已变更。Adapter不知道数据源发生变化,所以不会触发UI刷新;而调整窗口/切换悬浮窗时,系统会触发Activity的重绘流程,Adapter才会重新绑定数据,这时候列表才显示出来。

修复方案

在onDataChange方法中,更新完userList后调用adapter.notifyDataSetChanged(),强制Adapter刷新UI:

修改后的MainActivity.kt代码:

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    mAuth = FirebaseAuth.getInstance()
    userList = ArrayList()
    adapter = UserAdapter(this, userList)
    mDbRef = FirebaseDatabase.getInstance().reference

    userRecyclerView = findViewById(R.id.userRecyclerView)
    userRecyclerView.layoutManager = LinearLayoutManager(this)
    userRecyclerView.adapter = adapter

    mDbRef.child("user").addValueEventListener(object : ValueEventListener {
        override fun onDataChange(snapshot: DataSnapshot) {
            userList.clear()
            for (postSnapshot in snapshot.children) {
                val currentUser = postSnapshot.getValue(User::class.java)
                if (mAuth.currentUser?.uid != currentUser?.uid) {
                    userList.add(currentUser!!)
                }
            }
            // 通知Adapter数据已更新,触发UI刷新
            adapter.notifyDataSetChanged()
        }

        override fun onCancelled(error: DatabaseError) {
            // 补充错误处理,便于排查问题
            error.toException().printStackTrace()
        }
    })
}

额外检查点

  • 确认LoginActivity跳转MainActivity的逻辑正确,比如登录成功后通过startActivity(Intent(this, MainActivity::class.java))跳转,必要时可调用finish()避免返回登录页。
  • 检查UserAdapter的实现是否正确,确保能将userList的数据正确绑定到列表项布局中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 23:01:14