You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET MAUI是否支持使用平台专属XAML文件?

.NET MAUI 平台专属XAML使用与列表控件跨平台适配

列表控件跨平台问题解决方案

Android端:ListView + SwipeView 移除项报错修复

在Android平台,若使用ListView嵌套SwipeView,当从绑定的ObservableCollection中移除数据项时,会抛出Java错误:

The specified child already has a parent. You must call removeView() on the child's parent first.

解决方法:直接将ListView替换为CollectionView。CollectionView在Android端的视图复用机制更适配带滑动操作的场景,可彻底避免该错误。

iOS端:CollectionView 超出页面范围修复

iOS平台下,CollectionView默认布局逻辑会优先占据全屏高度,当它与页面其他元素共存时,极易延伸到页面可视范围之外。这种情况下改用ListView即可解决,且iOS端使用ListView嵌套SwipeView不会触发Android端的上述错误。

平台专属XAML文件实现分平台布局

.NET MAUI支持平台专属C#代码,同样也支持平台专属XAML文件,只是官方文档相关说明较少。具体实现步骤:

  • 为目标页面创建带平台后缀的XAML文件:
    • Android平台:[页面名].Android.xaml
    • iOS平台:[页面名].iOS.xaml
  • 将这些平台专属XAML文件的生成操作设置为MauiXaml
  • 页面的代码后台([页面名].xaml.cs)无需修改,MAUI框架会自动根据当前运行平台加载对应的专属XAML

通过这种方式,你可以在Android端专属XAML中使用CollectionView,iOS端专属XAML中使用ListView,完美适配两个平台的不同问题。

内容的提问来源于stack exchange,提问作者Lilly

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 06:25:06