Listview Search上的图像闪烁-xamarin.forms

时间:2019-02-06 05:03:20

标签: xamarin.forms

在我的xamarin.forms应用程序中,我有一个Listview.Listview包含绑定到photoURL的图像。我已经在listview的顶部实现了一个搜索框。一切正常,但是我现在面临的问题是每当我搜索时对于列表中的任何内容,该项目都会出现。但是每种字符类型的图像都会闪烁。我从绑定到listview的API获取数据。 请参考链接:https://gfycat.com/WaterloggedBeneficialGlobefish

我的图片绑定

 <Grid>
                                         <ci1:CircleImage  
                                             HeightRequest="200"
                                             Source="empavatar.png"
                                             Aspect="AspectFit">
                                         </ci1:CircleImage>
                                         <ci1:CircleImage  
                                             HeightRequest="200"
                                             Source="{Binding PhotoURL}"
                                             Aspect="AspectFit">
                                         </ci1:CircleImage>
                </Grid>

当ImageURL为null时,我使用圆形imageview和模板图像。

我的搜索

   private void SearchBar_TextChanged(object sender, TextChangedEventArgs e)
        {


            if (string.IsNullOrEmpty(e.NewTextValue))
            {
                EmployeeListView.ItemsSource = resultObjForEmployee;
            }

            else
            {
                EmployeeListView.ItemsSource = resultObjForEmployee.Where(x => x.Name.ToLower().StartsWith(e.NewTextValue));
            }
        }

resultObjForEmployee 是我从json获得的结果。

请帮助我解决此问题。

1 个答案:

答案 0 :(得分:1)

尝试将Listview的 CachingStrategy 设置为“ RecycleElement

<ListView CachingStrategy="RecycleElement">
    <ListView.ItemTemplate>
        <DataTemplate>
            <ViewCell>
                <Grid>
                    <ci1:CircleImage  
                        HeightRequest="200"
                        Source="empavatar.png"
                        Aspect="AspectFit"></ci1:CircleImage>
                    <ci1:CircleImage  
                        HeightRequest="200"
                        Source="{Binding PhotoURL}"
                        Aspect="AspectFit"></ci1:CircleImage>
                </Grid>
            </ViewCell>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>