xamarin - 以 xamarin 表单将页面导航到另一个页面时 UI 冻结
问题描述
在我的应用程序 My MainPage Showing Menus 中,单击菜单后下一页加载速度非常慢并冻结了 UI。
当内容页面包含带有 Items 的 listView 时,就会发生这种情况。我的数据页面内容包含 50 个项目的列表视图(无限滚动前 50 个项目)
XAML:
<ListView
ItemsSource="{Binding ItemsData}"
SelectedItem="{Binding SelectedItemsData}"
HasUnevenRows="True"
BackgroundColor="White" x:Name="ItemsDataList">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Grid
Margin="2,0,2,0"
Padding="8"
IsEnabled="{Binding IsEnableItemsData}">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="30*"/>
<ColumnDefinition Width="30*"/>
<ColumnDefinition Width="30*"/>
<ColumnDefinition Width="20*"/>
<ColumnDefinition Width="20*"/>
</Grid.ColumnDefinitions>
<Label Text="{Binding SKU}" Grid.Row="0" Grid.Column="0" HorizontalTextAlignment="Center" VerticalOptions="Center" TextColor="{Binding SKUColor}" FontSize="Small"/>
<Label Text="{Binding OrderNumber}" Grid.Row="0" Grid.Column="1" HorizontalTextAlignment="Center" VerticalOptions="Center" TextColor="Black" FontSize="Small"/>
<Label Text="{Binding CategoryName}" Grid.Row="0" Grid.Column="2" HorizontalTextAlignment="Center" VerticalOptions="Center" TextColor="Black" FontSize="Small"/>
<Label Text="{Binding OrderQuantity}" Grid.Row="0" Grid.Column="3" HorizontalTextAlignment="Center" VerticalOptions="Center" TextColor="Black" FontSize="Small"/>
<Label Text="{Binding Bin}" Grid.Row="0" Grid.Column="4" HorizontalTextAlignment="Center" VerticalOptions="Center" TextColor="Black" FontSize="Small"/>
</Grid>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
<ListView.Behaviors>
<eventToCommand:EventToCommandBehavior
EventName="ItemSelected"
Command="{Binding ItemsDataSelectedItemChange}"/>
<eventToCommand:EventToCommandBehavior
EventName="ItemAppearing"
Command="{Binding ItemsDataItemAppearing}"/>
</ListView.Behaviors>
</ListView>
视图模型:
public ObservableCollection<ItemsData> Data
{
get { return _data; }
set
{
_data = value;
RaisePropertyChanged();
}
}
从本地数据库获取数据
Data = GetData(GlobalVariable.BranchId, DataLimit, Offset, SearchText, filterData, "Others", sortData);
如何摆脱这个问题?
解决方案
推荐阅读
- android - 重新打包后库存 boot.img 无法启动
- javascript - 为什么 updateOne 不更新我的收藏?
- sql-server - 在 CASE 语句中使用两个 = 符号?
- mysql - 查询说明
- html - 如何使用引导程序将大于其容器的段落元素居中?
- python - 尝试使用 subprocess.check_output python 解释器使此代码不可知
- reactjs - 使用 React JS 在 firebase 中查询子集合的子集合
- mesh - 虚幻引擎中的静态网格物体和骨架网格物体之间有共同的父节点吗?
- django - .env 在 uwsgi 上使用 django-environ 重新加载
- java - SQLite rawQuery + String.format = "该语句有 0 个参数。"?