我在Xamarin中使用了RelativeLayout的a Factor*。表单很多,这样我的应用UI在任何设备上都能正确缩放。RelativeLayout不再推荐使用,也没有提供替代品,所以我想知道应该用什么技术来表示,例如我希望xaml元素占据其父元素的80(container)-我是否应该在运行时计算容器的真实的宽度/高度,取决于设备分辨率?或者有更好的解决方案?我只是在.Net毛伊岛找不到任何接近RelativeLayout+Factor允许我在Xamarin中做的事情。表格。
gab6jxml1#
我担心现在除了创建你自己的衍生相对布局之外没有别的方法。我也遇到了同样的问题,将Xamarin应用程序转换为MAUI。我们确实使用了相对布局来显示建筑物内各个位置的各种机器。我找到了一些关于如何创建自定义布局here的示例。我不建议使用兼容性命名空间。对我来说,它会产生问题,激活它后,我的一些页面内容不再显示。希望这至少有一点帮助。
qojgxg4l2#
一个选项是使用ColumnDefinitions="*,8*,*"的网格布局。将内容放入第1列。
ColumnDefinitions="*,8*,*"
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>
3条答案
按热度按时间gab6jxml1#
我担心现在除了创建你自己的衍生相对布局之外没有别的方法。我也遇到了同样的问题,将Xamarin应用程序转换为MAUI。我们确实使用了相对布局来显示建筑物内各个位置的各种机器。
我找到了一些关于如何创建自定义布局here的示例。
我不建议使用兼容性命名空间。对我来说,它会产生问题,激活它后,我的一些页面内容不再显示。
希望这至少有一点帮助。
qojgxg4l2#
一个选项是使用
ColumnDefinitions="*,8*,*"
的网格布局。将内容放入第1列。
2sbarzqh3#
AbsoluteLayout和RelativeLayout现在只存在于兼容性命名空间中,您可以通过添加新的命名空间并在XAML引用前加上前缀来更新代码以使用它们: