为啥 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 表单中的视图

Xamarin 表单 - 侧边菜单左侧栏、片段和列表视图

如何在 xamarin 表单的集合视图中的最后一项旁边添加图像/按钮?

xamarin 表单从按钮单击捕获列表视图

Xamarin 表单列表视图项目不显示