c# - 滚动时列表视图项目文本更改
问题描述
我有一个列表视图,我在其中绑定了多个数据,例如标签和图像,并且我在我的框架中有该列表,所以当列表大小大于 10 项左右时,滚动时我的图像会自行调整大小并且标签文本开始隐藏取消隐藏.
这是我的xml:
<ListView
x:Name="list"
SelectionMode="None"
SeparatorVisibility="None"
HasUnevenRows="True"
IsVisible="False"
BackgroundColor="Transparent"
ItemTapped="List_ItemTapped"
CachingStrategy="RetainElement"
>
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Frame Padding="10" Margin="10">
<Grid>
<Grid.RowDefinitions>
<RowDefinition
Height="Auto" />
<RowDefinition Height="*"
/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition
Width="Auto" />
<ColumnDefinition
Width="*" />
</Grid.ColumnDefinitions>
<Label
Grid.Row="0"
Grid.Column="0"
Text="{Binding Note}"
HorizontalOptions="Start"
TextColor="Black"
FontSize="Small"
FontFamily="
{StaticResource BoldFont}"
FontAttributes="Bold">
</Label>
<ImageButton
Grid.Row="0"
Grid.Column="1"
HorizontalOptions="EndAndExpand"
WidthRequest="22"
HeightRequest="22"
Padding="6"
Margin="0,0,0,0"
Clicked="btndelete"
AbsoluteLayout.LayoutBounds="0,0,1,1"
BackgroundColor="Transparent"
Source="close.png">
</ImageButton>
<Label
Grid.Row="1"
Grid.Column="0"
Text="{Binding
NOfQuestions}"
FontSize="12"
FontFamily="
{StaticResource Regular}"
TextColor="White">
</Label>
<Label
Grid.Row="1"
Grid.Column="0"
Margin="15,0,0,0"
Text="{Binding
NOfDigits}"
FontSize="12"
FontFamily="
{StaticResource Regular}"
TextColor="White">
</Label>
</Grid>
</Frame>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
这是此视频中我的问题的视频,您可以看到列表看起来不错,但是当我开始滚动它时,文本开始隐藏,取消隐藏它的大小更改,交叉图像变小或变大,并且在删除所有列表项时文字消失
解决方案
这种重新渲染列表单元格的行为通常与ListView
缓存策略有关。它定义了单元格的缓存方式,并在加载大量数据时尝试提高性能,但也可以与正确的显示相结合。尝试弄乱CachingStrategy
. 在过去的经验中,将其设置为“RecycleElement”可以解决渲染问题。
此外,请查看此链接以获取有关 ListView 性能的更多信息。
推荐阅读
- javascript - 如何从 JSON 对象计算特定属性的键数
- python - 在 Cygwin 中安装 Python 2.7.11
- python - 使用 Outlook Rest api 获取附件时“消息超出支持的最大大小”
- angularjs - 从指令调用控制器函数,参数未定义
- java - Activity has been stopped
- c++ - 改进来自 InterlockedCompareExchange() 的原子读取
- c# - 使用单元格内容从datagridview添加到另一个datagridview单击c#
- django - 谁能告诉我如何防止在 Django 模型中存储多个输入的空白输入字段
- python - 无法使用 anaconda 安装 GCC
- sql - Postgresql:从数字开始提取文本