Xamarin 学习笔记——踩坑小结

我的第一个练手项目,便签本的基本增删改查功能终于基本完成了。在这段时间里,虽然踩了不少坑,但最后应用终于按照预期运行起来的时候,真的有种柳暗花明的感觉。在进行下一阶段的开发之前,我打算先小结一下这段时间里踩的一些坑以及解决方式。

一、RelativeLayout

继续阅读Xamarin 学习笔记——踩坑小结

Xamarin.Forms 学习笔记—— Viewcell 设置自动高度

今天打算使用 ListView 搭配 ViewCell 展示一份文本列表时,遇到了一个问题,代码如下:

<ListView x:Name="listView">
    <ListView.ItemTemplate>
        <DataTemplate>
            <ViewCell>
                <StackLayout Padding="20">
                    <Label Text="{Binding Text}" />
                </StackLayout>
            </ViewCell>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

ViewCell 中使用了一个 StackLayout 并对其设置了 Padding,但是实际运行后发现 ViewCell 的高度是统一且固定的,超出的区域会被直接截掉。虽然可以直接对 ViewCell 设置高度,但这显然不符合我的需求。经过搜索,我在微软的文档中发现了其实控制 ViewCell 为自动高度与否其实是在 ListView 中设置。

获取或设置一个布尔值,该值指示此 ListView 元素是否具有不均匀的行。

属性值
Boolean
如果此 ListView 控件具有不均匀的行为 true,否则为 false。

ListView.HasUnevenRows 属性 (Xamarin.Forms) | Microsoft Docs

看到这里我就豁然开朗了,不过感觉这个设定有点绕?加上该属性后 ViewCell 成功如预期显示。

<ListView x:Name="listView"
          HasUnevenRows="True">
    <ListView.ItemTemplate>
        <DataTemplate>
            <ViewCell>
                <StackLayout Padding="20">
                    <Label Text="{Binding Text}" />
                </StackLayout>
            </ViewCell>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>