在 mvvm 中将 recyclerview 向下滚动到底部
Scrolling down recyclerview to bottom in mvvm
我在我的应用程序中实现了 mvvm 和数据绑定。我使用波纹管代码设置 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 元素中
设置绑定适配器为
@BindingAdapter({"bind:scrollTo"})
public static void scrollTo(RecyclerView recyclerView, int position) {
recyclerView.scrollToPosition(position);
}
我在我的应用程序中实现了 mvvm 和数据绑定。我使用波纹管代码设置 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 元素中
设置绑定适配器为
@BindingAdapter({"bind:scrollTo"})
public static void scrollTo(RecyclerView recyclerView, int position) {
recyclerView.scrollToPosition(position);
}