从Listview中删除项目会导致其下面的所有项目在Android上闪烁

问题描述 投票:0回答:1

这仅在Android上发生,我有一个动画,将ViewCell中StackView的高度,边距,填充间距和ViewCell的高度设置为0。我什至添加了一个延迟以确保下部元素的位置没有改变。确实,已删除元素下面的元素没有更改,但它们全部闪烁了。当我将其移到列表末尾时,也会发生同样的情况。我不得不隐藏元素而不是删除它。如何克服?还是有一种方法可以创建实现Observable Collection的类,创建不触发Collection Changed事件的delete方法?谢谢

public class ExtendedObservableCollection<T> : ObservableCollection<T>
{
    private bool _suppressNotification = false;

    public bool AllowNotifications { get { return _suppressNotification; } }

    protected override void OnCollectionChanged(NotifyCollectionChangedEventArgs e)
    {
        if (!_suppressNotification)
            base.OnCollectionChanged(e);
    }

    protected override void OnPropertyChanged(PropertyChangedEventArgs e)
    {
        if (!_suppressNotification)
            base.OnPropertyChanged(e);
    }

    public void ActivateNotifications()
    {
        _suppressNotification = false;
    }

    public void DesactivateNotifications()
    {
        _suppressNotification = true;
    }

    public void AddRange(IEnumerable<T> list)
    {
        if (list == null)
            throw new ArgumentNullException("list");

        _suppressNotification = true;

        foreach (T item in list)
        {
            Add(item);
        }
        _suppressNotification = false;
        OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Add));
    }
}
xamarin xamarin.android xamarin.forms
1个回答
0
投票

您得到解决方案了吗我正面临着同样的问题,但目前还无法解决如果找到解决方案,可以分享一下吗,请

© www.soinside.com 2019 - 2024. All rights reserved.