我有图片库的内容页(100个人电脑)。但是加载页面需要很长时间(avg =5-7秒)。我尝试将图像动态加载到sclollView中的alt.Thread中。这里我的代码:
public ScrollView CreateGallery(List<MetroButton> controls)
{
var stack = new StackLayout(){Orientation = StackOrientation.Vertical, Spacing = 0};
if (controls.Count == 0)
return new ScrollView ();
ScrollView scoll = new ScrollView () { Orientation = ScrollOrientation.Vertical};
scoll.Content = stack;
//here dynamically add images to scrollView
Task.Run(() =>
{
for (int i = 0; i < controls.Count - 1; i = i + 2)
{
stack.Children.Add(createDoubleImages(controls[i], controls[i+1]));
}
if (controls.Count % 2 != 0)
{
stack.Children.Add(createDoubleImages(controls[controls.Count - 1], null));
}
});
return scoll;
}但这没什么用。我如何组织撤回大量图片在页面上?
发布于 2015-10-08 11:44:34
一些小贴士:
还有一件事:您正在从另一个线程(Task.Run)修改UI --您不能这样做。在任务中使用Device.BeginInvokeOnMainThread。
发布于 2015-10-08 08:25:12
在实现用于DataGrid的Xamarin.Forms组件时,我遇到了一些问题,而且速度慢得令人痛苦。为此,我提议使用ListView,并制作一个自定义模板来显示其中的图像。
< ListView ItemsSource="{Binding ImagesList}" RowHeight="120">
< ListView.ItemTemplate>
< DataTemplate>
< ViewCell>
< ViewCell.View>
< Image Source="{Binding .}" Aspect="Fill"/ >
</ Grid>
</ ViewCell.View>
</ ViewCell>
</ DataTemplate>
</ ListView.ItemTemplate>
</ ListView>
https://stackoverflow.com/questions/33009857
复制相似问题