gpt4 book ai didi

xamarin.android - MvxListView 和向下滚动

转载 作者:行者123 更新时间:2023-12-01 03:50:17 25 4
gpt4 key购买 nike

我正在使用绑定(bind)到 observablecollection 的 MvxListView 来显示聊天消息。我找到了一种方法, ListView 始终使用以下 2 个属性向下滚动到底部:

android:stackFromBottom="true"
android:transcriptMode="alwaysScroll"

当我通过命令将消息添加到 observablecollection 时(当我自己发送消息时),这非常有用,但是当我通过 viewmodel 接收消息(通过信号器)然后以完全相同的方式将消息添加到 observablecollection 时, ListView 已更新,但不会向下滚动。当我手动向下滚动消息时,它不会自动向下滚动。我认为这可能与通过信号器到达的消息有关,因为它是一个异步回调。

我试图手动强制 ListView 在 MvxAdapter 中向下滚动,如下所示:
   public override void NotifyDataSetChanged()
{
base.NotifyDataSetChanged();
((FragmentActivity)_context).RunOnUiThread(() =>
{
_list.SetSelection(this.Count-1);
});
}

然后在消息到达时显式调用它,但这也无济于事。

帮助?

最佳答案

刚刚从斯洛奇看到这个答案:

Advice on where and when to use ObservableCollection in MvvmCross

UI 更新必须同步完成。仔细想想,这确实是有道理的。我的答案是使用:

MvxMainThreadDispatcher.Instance.RequestMainThreadAction(() => {
// fill your collection in the viewmodel and do a propertychanged
});

关于xamarin.android - MvxListView 和向下滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23448785/

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