【发布时间】:2019-02-14 14:51:06
【问题描述】:
我有一个 MvxRecyclerView,它被 SearchView 过滤并按 PopupMenu 中的选项排序。如果我在后台运行应用程序并恢复它,则在 PopupMenu 中更改选项不会像在后台运行之前那样对 MvxRecyclerView 中的项目重新排序,但 SearchView 过滤良好,无需排序。
【问题讨论】:
-
后台处理后,当您在弹出菜单中选择一个项目时,OrderItems 方法是否会被调用 - 如果您设置断点,它会命中吗?当您从后台返回应用程序时,听起来您的绑定没有被补水。能否提供布局代码(axml)和Activity代码?
-
它确实被调用并且 MvxObservableCollection 被更新。我想也许 NotifyDataSetChanged 没有在 Adapter 上被调用,但在 Fragment 的 OnMenuItemClick 中手动调用它什么也没做。还尝试在没有更改的情况下使 MvxRecyclerView 无效。我将添加布局和片段代码。
-
@pnavk 添加了代码。
-
您可以尝试删除以下
if (savedInstanceState != null) return _layout;。我认为这可能是问题,因为旧布局可能引用过时的绑定 -
没有变化。问题似乎与绑定无关,因为即使在从后台恢复后,通过 SearchView 进行过滤也可以正常工作。
标签: android-recyclerview xamarin.android mvvmcross