为啥 xamarin 表单列表视图中的组标题在发布模式下不可见?
Posted
技术标签:
【中文标题】为啥 xamarin 表单列表视图中的组标题在发布模式下不可见?【英文标题】:Why group header in xamarin forms list view isn't visible in release mode?为什么 xamarin 表单列表视图中的组标题在发布模式下不可见? 【发布时间】:2019-06-19 05:31:17 【问题描述】:我有一个包含组标题的列表视图,它在发布模式下不可见,只是在调试模式下。
这是调试模式的屏幕截图
这是发布模式的截图
我已经尝试更新 NuGet 扩展,android 版本,甚至尝试在另一部手机中构建应用,但没有任何效果。
XAML:
<ListView x:Name="myList"
HasUnevenRows="True"
ItemSelected="MyList_ItemSelected"
IsGroupingEnabled="True">
<ListView.GroupHeaderTemplate>
<DataTemplate>
<ViewCell>
<ViewCell.View>
<StackLayout>
<Label Text="Binding Key"/>
</StackLayout>
</ViewCell.View>
</ViewCell>
</DataTemplate>
</ListView.GroupHeaderTemplate>
...
</ListView>
CS:
var groupedCompanies = companies.Where(x => !x.status.StartsWith("1") &&
!x.status.StartsWith("9"))
.GroupBy(x => x.status);
ObservableCollection<IGrouping<string, Company>> collection = new ObservableCollection<IGrouping<string, Company>>(groupedCompanies);
myList.ItemsSource = collection;
我希望在发布模式下构建应用程序,其中组标头作为调试模式标头可见,但不知道可能导致问题的原因。
【问题讨论】:
您是否检查了所有项目属性并确保所有选项(除了定义 DEBUG 常量)对于发布和调试配置都是相同的 您的发布配置中的 Mono Linker Behavior 设置是什么?如果它不是Don't Link
,请将其设置为Don't Link
作为测试并重新测试发布/临时构建。如果这样可以解决问题,请用这些事实更新您的问题...
另外,你确定在发布模式下数据是一样的并且正确填写了吗?
谢谢 SushiHangover 它正在链接 sdk 程序集。
@RuanMolinari 如果解决了问题,您应该查看docs.microsoft.com/en-us/xamarin/android/deploy-test/linker 以找到正在剥离的类/方法/属性(您的 APK 现在在链接器关闭的情况下非常大,但是如果你不在乎......)
【参考方案1】:
我刚才也遇到了类似的问题。问题是IGrouping
上的Key
属性或其实现被链接掉了。
在我的代码中,我做了类似的事情:
bool falseFlag = false;
if (falseFlag)
Console.WriteLine(groupedCompanies.First().Key);
这足以解决问题。如果可以避免,禁用链接并不是一个好选择。
【讨论】:
以上是关于为啥 xamarin 表单列表视图中的组标题在发布模式下不可见?的主要内容,如果未能解决你的问题,请参考以下文章
Xamarin:用于 Android 和 Windows UWP 的 Xamarin 表单中的分组列表的垂直字母索引(跳转列表)
在 LongPress 上显示 ContextMenu 以获取 xamarin 表单中的视图