添加数据后,Firebase 会自动滚动列表视图



我正在开发一个聊天应用程序,我正在使用Firebase listview UI,效果很好,但我的问题是当数据插入数据库时,列表视图不会自动向下滚动,当重新打开ListView活动时,它从顶部开始,我将不得不向下滚动几分钟才能看到插入的新数据, 你能帮我实现这个吗

FirebaseListAdapter<Chats> chatsFirebaseListAdapter = new FirebaseListAdapter<Chats>(
            this,
            Chats.class,
            R.layout.messaging_layout,
            readMessages
    ) {
        @Override
        protected void populateView(View v, Chats model, int position) {
            TextView username = (TextView) v.findViewById(R.id.textViewUsername);
            username.setText(model.getUsername());
            TextView message = (TextView) v.findViewById(R.id.textViewMessage);
            message.setText(model.getMessage());
            TextView date = (TextView) v.findViewById(R.id.textViewDate);
            date.setText(model.getDate());
        }
    };
    listView.smoothScrollToPosition(chatsFirebaseListAdapter.getCount() -1);
    listView.setAdapter(chatsFirebaseListAdapter);

您可以使用此功能将滚动设置到聊天底部

listView.smoothScrollToPosition(adapter.getCount() -1);
您可以使用

它自动将列表滚动到底部,无论当前可见哪些项目。

listView.setTranscriptMode(ListView.TRANSCRIPT_MODE_ALWAYS_SCROLL(;

如果您使用的是recyclerView,我最好建议使用recyclerView,因为它比listView好得多

试试这个(仅限回收商视图(

listView.scrollToPosition(chatsFirebaseListAdapter.getCount() -1);

而不是

listView.smoothScrollToPosition(chatsFirebaseListAdapter.getCount() -1);,也会阻止从上到下滚动

如果您可以在Firebase收到新消息并添加到列表中
时列出 there also use lv_chatList.scrollToPosition(messagesList.size() - 1);将数据加载到列表后

如果您无法满足您的需求,请在下面发表评论

相关内容

  • 没有找到相关文章

最新更新