XAML 使用.NET MAUI RelativeLayout时,Android应用程序崩溃

fcipmucu  于 2023-01-18  发布在  .NET
关注(0)|答案(1)|浏览(160)

我正在尝试将Xamarin.Forms应用程序迁移到.NET MAUI,但是我发现这个bug也发生在新的.NET MAUI应用程序上。
我尝试迁移到.NET MAUI的应用程序在其大量视图中使用了RelativeLayout,每当我尝试在Android设备上运行该应用程序时(我没有iOS设备来测试这个设备,因此我无法确定是否发生了这种情况),应用程序立即崩溃。
以下是重现的步骤:
1.在Visual Studio 2022中使用.NET 6.0创建新的.NET MAUI应用程序。
1.将MainPage.xaml的内容替换为以下内容:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:cmp="clr-namespace:Microsoft.Maui.Controls.Compatibility;assembly=Microsoft.Maui.Controls"
             x:Class="Test_Maui_App.MainPage">

    <ScrollView>
        <cmp:RelativeLayout>

        </cmp:RelativeLayout>
    </ScrollView>

</ContentPage>

将MainPage.xaml.cs的内容替换为以下内容:

namespace Test_Maui_App;

public partial class MainPage : ContentPage
{
    public MainPage()
    {
        InitializeComponent();
    }
}

1.尝试在连接或不连接调试器的android设备上运行应用程序。
1.观察应用程序崩溃的行为。
不幸的是,在ADP中查看设备日志并不能提供任何真实的有用的信息。
我知道RelativeLayout正在被MAUI支持的其他布局所取代,但我想知道它是否有可能仍然被使用(并保存我重做一堆XAML lol的时间)。如果没有,最好的替代方案是什么?

tyg4sfes

tyg4sfes1#

AbsoluteLayoutRelativeLayout已移到兼容性命名空间。我测试了您提供的代码,它如您所述崩溃。您可以尝试使用网格布局。此外,您可以检查以下内容:RelativeLayoutPage的官方代码。
欲了解更多信息,您可以参考官方博客发布.NET MAUI Preview 7。
您也可以将an issue on GitHub设为整数。

相关问题