xamarin 既然不建议在.Net Maui中使用RelativeLayeout,那么有什么技术可以替代它呢?

hwamh0ep  于 2022-12-07  发布在  .NET
关注(0)|答案(3)|浏览(173)

我在Xamarin中使用了RelativeLayout的a Factor*。表单很多,这样我的应用UI在任何设备上都能正确缩放。RelativeLayout不再推荐使用,也没有提供替代品,所以我想知道应该用什么技术来表示,例如我希望xaml元素占据其父元素的80(container)-我是否应该在运行时计算容器的真实的宽度/高度,取决于设备分辨率?或者有更好的解决方案?我只是在.Net毛伊岛找不到任何接近RelativeLayout+Factor允许我在Xamarin中做的事情。表格。

gab6jxml

gab6jxml1#

我担心现在除了创建你自己的衍生相对布局之外没有别的方法。我也遇到了同样的问题,将Xamarin应用程序转换为MAUI。我们确实使用了相对布局来显示建筑物内各个位置的各种机器。
我找到了一些关于如何创建自定义布局here的示例。
我不建议使用兼容性命名空间。对我来说,它会产生问题,激活它后,我的一些页面内容不再显示。
希望这至少有一点帮助。

qojgxg4l

qojgxg4l2#

一个选项是使用ColumnDefinitions="*,8*,*"的网格布局。
将内容放入第1列。

2sbarzqh

2sbarzqh3#

AbsoluteLayout和RelativeLayout现在只存在于兼容性命名空间中,您可以通过添加新的命名空间并在XAML引用前加上前缀来更新代码以使用它们:

<ContentPage
    xmlns:cmp="clr-namespace:Microsoft.Maui.Controls.Compatibility;assembly=Microsoft.Maui.Controls"
    ...
    >
    <cmp:AbsoluteLayout>
        <BoxView 
            Color="Red"
            cmp:RelativeLayout.XConstraint="{cmp:ConstraintExpression Type=Constant, Constant=0}"
            cmp:RelativeLayout.YConstraint="{cmp:ConstraintExpression Type=Constant, Constant=0}" />
    </cmp:AbsoluteLayout>
</ContentPage>

相关问题