【问题标题】:Incremental Loading in ListView WP8ListView WP8 中的增量加载
【发布时间】:2015-04-12 16:40:05
【问题描述】:

我已经阅读了关于滚动到列表视图底部时如何进行增量加载的文章,但是当我们滚动到列表视图顶部时如何实现延迟加载。当用户到达顶部时,我想将更多项目添加到列表顶部。我们有什么办法可以做到这一点。

【问题讨论】:

    标签: c# xaml windows-phone-8


    【解决方案1】:

    为此找到了解决方案。旋转两个控件。

    例如->

    <ListView x:Name="GridViewMain" IncrementalLoadingThreshold="2" RenderTransformOrigin="0.5,0.5"> <ListView.RenderTransform> <RotateTransform Angle="180"></RotateTransform> </ListView.RenderTransform> <ListView.ItemContainerStyle> <Style TargetType="ListViewItem"> <Setter Property="HorizontalContentAlignment" Value="Stretch"/> <Setter Property="VerticalContentAlignment" Value="Stretch"/> </Style> </ListView.ItemContainerStyle> <ListView.Resources> <DataTemplate x:Key="DataTemplateGridViewMain"> <Grid HorizontalAlignment="Stretch" Background="#FF7C1A9B" RenderTransformOrigin="0.5,0.5"> <Grid.RenderTransform> <RotateTransform Angle="180"/> </Grid.RenderTransform> <TextBlock HorizontalAlignment="Left" Text="{Binding}" VerticalAlignment="Center" FontSize="20" FontFamily="Tempus Sans ITC" /> </Grid> </DataTemplate> </ListView.Resources> <ListView.ItemTemplate> <StaticResource ResourceKey="DataTemplateGridViewMain" /> </ListView.ItemTemplate> </ListView>

    为我工作。

    【讨论】:

      【解决方案2】:

      没有内置解决方案。

      这是一个检查 ListViews 滚动位置并在其位于顶部时加载其他项目的示例。

      // Attach to the view changed event
      _scrollViewer = listview.GetFirstDescendantOfType<ScrollViewer>();
      if (_scrollViewer != null)
      {
          _scrollViewer.ViewChanged += OnViewChanged;
      }
      

      还有处理程序。

      private void OnViewChanged(object sender, ScrollViewerViewChangedEventArgs e)
      {
          // If scrollviewer is scrolled up
          if (_scrollViewer.VerticalOffset < 150)
          {
              // Start loading new items...
          }
      }
      

      小心轻放:

      在顶部添加项目时,滚动位置会改变。

      检查很简单,只有在scrollviewer可以滚动时才有效。

      【讨论】:

      • 如何处理滚动位置的变化?
      • 你到底是什么意思?有scrollviewer.ChangeView()。
      • 从下往上滚动时,添加项目时,滚动突然跳到底部。有什么办法可以防止这种情况发生?
      • ListView 中的 ItemsStackPanel 有一个 ItemsUpdatingScrollMode 属性。另外,为了防止它跳来跳去,你必须将 scollviewer 从顶部向下滚动 1px。
      • 我试过了,但无法修复。发布了一个关于它的问题。这是我面临的一个普遍问题,即使是从上到下的列表视图。 stackoverflow.com/questions/29984051/…
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多