java - 更新新项目时如何自动向下滚动ListView控件-android studio

标签 java android android-listview

我的聊天页面有 ListView ....每当我在 ListView 中键入新消息时,它不会自动向下滚动到底部。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="15sp"
    android:background="@drawable/chat_page"
    tools:context=".Chatbox">


    <Button
        android:layout_width="40dp"
        android:layout_height="40dp"
        android:clickable="true"
        android:id="@+id/sendbutton"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:background="@drawable/send"
         />

    <android.support.design.widget.TextInputLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_toLeftOf="@id/sendbutton"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true">

        <EditText
            android:id="@+id/typemessage"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:hint="Type a message..." />
    </android.support.design.widget.TextInputLayout>


    <ListView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_above="@id/sendbutton"
        android:dividerHeight="5dp"
        android:padding="10dp"
        android:divider="@android:color/transparent"
        android:id="@+id/listmessages"
        android:layout_marginBottom="16dp"/>


</RelativeLayout>

当我在 ListView 中添加新文本时,它应该转到页面底部以查看新消息

最佳答案

你可以试试这个。但我建议您使用 recyclerview 而不是聊天模块的 ListView 。

private void scrollToBottom() {
listView.post(new Runnable() {
    @Override
    public void run() {
        listView.setSelection(adapter.getCount() - 1);
    }
 });
}

关于java - 更新新项目时如何自动向下滚动ListView控件-android studio,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57069785/

相关文章:

android - 单独的 IntentService 实例是否共享同一个队列?

java - 等待一个异步操作完成android

Android - 多选 ListView 的自定义适配器

Android:2个不同的 View 意味着2个不同的 Activity ?

java - 如何在发送到 fragment 之前限制数组列表的大小数量

java - 将文本文件的字符串分割并存储在HashMap中

java - 如何使用 Java ArrayList 获取字符串用户输入并将值增加 +1?

php - Gradle 应用程序 :preBuild FAILED while executing from PHP

java - NoSuchMethodError : JobConf. getCredentials()

android - 在 ListView 中更改文本颜色