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

时间:2017-03-27 11:23:11

标签: android listview firebase firebase-realtime-database firebaseui

我正在使用聊天应用程序,我正在使用firebase listview ui,效果很好,但我的问题是当数据插入数据库时​​,listview不会自动向下滚动,当重新打开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);

3 个答案:

答案 0 :(得分:0)

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

listView.smoothScrollToPosition(adapter.getCount() -1);

答案 1 :(得分:0)

您可以使用此功能自动将列表滚动到底部,无论当前哪些项目可见。

listView.setTranscriptMode(ListView.TRANSCRIPT_MODE_ALWAYS_SCROLL);

答案 2 :(得分:0)

如果您正在使用recyclerView,我还建议使用recyclerView,因为它远远优于listView

尝试此操作(仅限Recycler View)

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

而不是

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

如果你可以在firebase获取新消息时添加列表,并添加到列表中 数据加载到列表后there also use lv_chatList.scrollToPosition(messagesList.size() - 1);

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