gpt4 book ai didi

java - 在 mvvm 中将 recyclerview 向下滚动到底部

转载 作者:搜寻专家 更新时间:2023-11-01 09:25:52 27 4
gpt4 key购买 nike

我在我的应用程序中实现了 mvvm 和数据绑定(bind)。我使用波纹管代码来设置 recyclerview 适配器

@BindingAdapter({"bind:setAdapter"})
public static void setUpAdapter(RecyclerView recyclerView, RecyclerView.Adapter adapter) {
recyclerView.setAdapter(adapter);
}

布局包含

    <android.support.v7.widget.RecyclerView
android:layout_width="0dp"
android:layout_height="0dp"
tools:itemCount="2"
tools:listitem="@layout/chat_bubble_left"
app:layoutManager="android.support.v7.widget.LinearLayoutManager"
app:setAdapter="@{chatViewModel.chatMessageAdapter}"/>

适配器包含在 viewModel 中

我需要的是我要打电话

recyclerView.scrollToPosition(items.size() - 1);

从我调用这个方法的地方和引用 recyclerview 调用此方法的最佳做法是什么?

最佳答案

经过反复试验,我找到了答案。这可以通过使用 observableInt 来实现,每次更新列表时都应将其设置为 (list-1)。

public ObservableInt scrollTo=new ObservableInt();

....

 list.addAll(templist);
chatMessageAdapter.notifyItemInserted(list.size()-1);
chatMessageAdapter.scrollTo.set(list.size()-1);

和使用

app:scrollTo="@{chatViewModel.chatMessageAdapter.scrollTo}

在布局中的 RecyclerView 元素中

设置绑定(bind)适配器为

@BindingAdapter({"bind:scrollTo"})
public static void scrollTo(RecyclerView recyclerView, int position) {
recyclerView.scrollToPosition(position);
}

关于java - 在 mvvm 中将 recyclerview 向下滚动到底部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50736122/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com