【问题标题】:Xamarin Forms slow navigatingXamarin Forms 导航缓慢
【发布时间】:2020-12-21 06:17:15
【问题描述】:

我有一个搜索页面,有一个按钮可以导航到另一个页面。当我单击该按钮时,导航大约需要 4 秒。

搜索页面命令:

Device.BeginInvokeOnMainThread(async () =>
{
    await (Application.Current.MainPage as NavigationPage).PushAsync(new OtherPage());
});

后面的其他页面代码:

[XamlCompilation(XamlCompilationOptions.Compile)]
    public partial class OtherPage : ContentPage
    {
        SearchStateViewModel Model;
        public SearchEstatePage()
        {
            InitializeComponent();

            Model = new SearchStateViewModel();

            Layout.BindingContext = Model;
        }

         protected override void OnAppearing()
        {
            base.OnAppearing();

            Model.GetCities();
        }
    }

有什么问题?

【问题讨论】:

  • 那么你有没有把GetCities注释掉并测试过你为什么要使用BeginInvokeOnMainThread
  • @MichaelRandall 我第一次注释掉 GetCities 并删除 BeginInvokeOnMainThread 需要 3 秒钟,当我按下返回按钮并再次按下导航按钮时,它导航速度很快。只有第一次很慢
  • 我的直觉说可能还有更多的事情发生在 SearchStateViewModel 的构造函数中是否有任何慢代码?
  • @MichaelRandall 我已经注释掉了 SearchStateViewModel 构造函数中的所有代码,但第一次导航仍然需要大约 3 秒。有什么方法可以导航到其他页面并在完全显示运行一些代码之后?
  • @MichaelRandall 让我们在聊天中继续讨论。

标签: c# xamarin.forms


【解决方案1】:

根据@MichaelRandall 的建议,我检查了OtherPage 的XAML,发现XAML 中的Syncfusion 组件会减慢导航速度。

但是什么是替代品?

【讨论】:

  • "但是什么是替代品?" - Syncfusion 是一个商业组件。这意味着支持。联系他们。帮助客户是他们的工作。可能是版本问题、已修补的内容或他们为您提供的代码建议。你为什么还要问这个问题?这表明对商业组件支持的工作原理缺乏了解。
  • 请不要在答案框中提问。 Stack Overflow 不是论坛。访问 tourhow to answer 了解 Stack Overflow 上的 Answers 是如何工作的。
猜你喜欢
  • 2018-10-13
  • 1970-01-01
  • 1970-01-01
  • 2018-07-22
  • 2018-02-19
  • 2016-06-06
  • 2018-02-09
  • 2019-07-24
  • 1970-01-01
相关资源
最近更新 更多