我想发布一个应用程序并使用Store-Test-kit进行测试。我的一个Pivot视图包含某种新闻页面,它总是从服务器获取30个新闻元素。 在我的屏幕上是大约5个新闻的空间,但它仍然预装17-18并因此而挂起。 我用ItemRealized / ItemUnrealized监听器测试它。
有点愚蠢的是,由于自动行为,Test-Kit告诉我,我的错是应用程序的响应性很差D:
有没有办法让它加载更少的新闻?如果我将1个新闻高达400像素,它将加载5-6个并且不会挂起。当然,添加空格不是最佳解决方案= /
是的:我的新闻有他们的形象。但当我发表评论时,它仍然悬而未决。 18个新闻太多,无法立即加载。
修改
我以异步方式获取数据并绑定它。 .xaml:
<phone:LongListSelector x:Name="NewsSelector" LayoutMode="List" IsGroupingEnabled="False" ItemsSource="{Binding OnlineNews}" SelectionChanged="News_LongListSelector_SelectionChanged">
<phone:LongListSelector.ItemTemplate>
<DataTemplate>
<Grid VerticalAlignment="Top" HorizontalAlignment="Left" >
<!--...-->
<Image Source="{Binding TeaserImage}" Width="120" Height="120" Stretch="UniformToFill" HorizontalAlignment="Center" VerticalAlignment="Center" Grid.RowSpan="3" />
<StackPanel Grid.Column="1" Margin="6,0,0,0">
<TextBlock Text="{Binding Title}" TextWrapping="Wrap" MaxHeight="54" TextTrimming="WordEllipsis" Style="{StaticResource PhoneTextAccentStyle}" FontFamily="Verdana" FontSize="22" VerticalAlignment="Top" HorizontalAlignment="Left"/>
<TextBlock Text="{Binding TeaserText}" TextWrapping="Wrap" MaxHeight="44" TextTrimming="WordEllipsis" Style="{StaticResource PhoneTextTitle3Style}" FontFamily="Verdana" FontSize="18" VerticalAlignment="Top" HorizontalAlignment="Left"/>
<TextBlock Text="{Binding PubDate}" Margin="12,4,0,4" Style="{StaticResource PhoneTextSmallStyle}" FontFamily="Verdana" FontSize="18" VerticalAlignment="Top" HorizontalAlignment="Left"/>
</StackPanel>
</Grid>
</DataTemplate>
</phone:LongListSelector.ItemTemplate>
</phone:LongListSelector>
和ViewModel .cs:
public void LoadNewsPage()
{
this.IsLoadingNews = true;
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(new Uri(NEWS_URL));
request.BeginGetResponse(new AsyncCallback(NewsCallback), request);
}
private void NewsCallback(IAsyncResult asynchronousResult)
{
try
{
//...
foreach (var d in list.news)
{
//...
OnlineNews.Add(new OnlineNewsViewModel() {
//...
});
}
}
catch
{
//...
}
}
但是我从哪里获取数据并不重要。当我在另一页上等待所有新闻加载然后切换时,它也会断断续续 - &gt;用1个图像和3个文本块创建18个新闻 - &gt;挂起。 Lumia 1320的性能更高,效果更好。但我没有机会在没有口吃的情况下在Lumia 520上运行它。
答案 0 :(得分:1)
务必将图像设置为像这样进行背景加载:
<Image Height="100" Width="100" Margin="12,0,9,0">
<Image.Source>
<BitmapImage UriSource="{Binding ImgURL}" CreateOptions="BackgroundCreation"/>
</Image.Source>
</Image>