更新列表视图文本绑定会导致使用Xamarin.Forms在iOS上闪烁

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

我正在使用Xamarin.Forms聊天应用程序,该应用程序逐字符发送/接收文本,这意味着在Android上,列表视图行上的文本绑定每1-2秒或半秒更新一次(取决于键入速度)。 listview项目更新平稳,但是在iOS上,每个输入的字符都闪烁/跳动,就像频闪灯一样。]

编辑

复制步骤:将Listview的ItemSource绑定到ObservableCollection,后者为在Entry中键入的每个新字符更新。使用带有标签的DataTemplate,该标签显示在Entry字段中键入的文本。

在Page.xaml中

<ListView HasUnevenRows="True" ItemsSource="{Binding ObservableCollection}">
    <ListView.ItemTemplate>
        <DataTemplate>
            <ViewCell>
                <ViewCell.View>
                    <Grid>
                        <Label Text="{Binding Text}"/>
                    </Grid>
                </ViewCell.View>
            </ViewCell>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>
<Entry Text="{Binding UserText}"/>

在PageViewModel.cs中

    /// <summary>
    /// Gets or sets the text entered by the user
    /// </summary>
    public string UserText
    {
        get
        {
            return this.userText;
        }

        set
        {
            this.SetProperty(ref this.userText, value);

            // Display text by updating listview
            Device.BeginInvokeOnMainThread(() =>
            {
                this.ObservableCollection.Add(userText);
            });
        }
    }          

我正在使用Xamarin.Forms聊天应用程序,该应用程序逐字符发送/接收文本,这意味着列表视图行上的文本绑定每1-2秒或半秒更新一次(取决于...

ios listview xamarin.forms xamarin.ios chat
1个回答
0
投票

我在iOS上创建了ListViewRenderer并设置AnimationsEnabled = false。现在轻弹消失了!

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