gpt4 book ai didi

uwp - Xamarin form-UWP - 在列表快速滚动时显示数据之前的黑色单元格

转载 作者:行者123 更新时间:2023-12-03 22:26:09 25 4
gpt4 key购买 nike

当我快速滚动列表时,每个单元格在加载数据之前都显示为黑色。如果我缓慢滚动数据,则不会出现黑色单元格。此行为仅发生在 Xamarin UWP 项目中。请找到以下图片以供引用。 enter image description here

最佳答案

通过编写自定义 ViewCell 并使用 native 数据模板修复了该问题。现在快速滚动时没有黑色单元格。我正在发布我的答案,以便有人可能会发现它有用。

例如:如果您有要显示的名称列表,请执行以下操作:

首先添加自定义viewcell如下

        public class CustomViewCell : ViewCell
{
public static readonly BindableProperty NameProperty =
BindableProperty.Create("Name", typeof(string), typeof(CustomViewCell), "");

public string Name
{
get { return (string)GetValue(NameProperty); }
set { SetValue(NameProperty, value); }
}

}

现在在 XAML 中添加 ListView,如下所示:
            <ListView 
ItemsSource="{Binding Products}">
<ListView.ItemTemplate>
<DataTemplate>
<custom:CustomViewCell Name="{Binding Name}"/>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>

那么你必须在UWP项目的App.xaml中编写DateTemplate样式如下:
        <ResourceDictionary>
<DataTemplate x:Key="CustomTemplate">
<Grid Padding="10">
<TextBlock Foreground="#333333" FontSize="14" VerticalAlignment="Center" Text="{Binding Name"/>
</Grid>
</DataTemplate>
</ResourceDictionary>

最后编写一个 CustomRenderer 来将原生 viewcell 替换为我们的 ListView。
    public class CustomViewCellRenderer : ViewCellRenderer
{
public override Windows.UI.Xaml.DataTemplate GetTemplate(Cell cell)
{
return App.Current.Resources["CustomTemplate"] as Windows.UI.Xaml.DataTemplate;
}
}

现在列表完美运行,没有任何黑色单元格渲染问题。

关于uwp - Xamarin form-UWP - 在列表快速滚动时显示数据之前的黑色单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44363306/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com