0
我有点卡在这里。我有一个显示列表视图的片段。我想加载组成该列表视图异步的项目。我这样做:xamarin列表视图没有填充
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
// do other stuff here
Task.Run(async() =>
{
_items = await GetItems();
_listView.Adapter = new FooAdapter(Activity, _items);
});
return view;
}
但即使项目正在填充列表视图永远不会在ui中更新。当我用SwipeRefreshLayout
做同样的事情时,它可以正常工作。
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
_refresher = view.FindViewById<SwipeRefreshLayout>(Resource.Id.refresher);
_refresher.Refresh += async delegate {
_items = await GetItems(true);
_refresher.Refreshing = false;
_listView.Adapter = new RecipeListAdapter(Activity, _items);
};
};
所以最初的观点是空的,但是当我拉下来,然后刷新视图工程和列表中填充,我的列表视图中显示出来。我无法弄清楚为什么第一种方式不起作用。
仅供参考我GetItems看起来是这样的:
private async Task<List<Summary>> GetItems(bool clear = false)
{
if (clear)
{
_items.Clear();
}
return await _service.GetItems(Token);
}
哦,当然。好吧,现在修好了。谢啦。 –