如何在 .Net Maui 中创建选项卡式页面?

2023-12-19

我在 .Net Maui 有一个选项卡式页面,如下所示:

<?xml version="1.0" encoding="utf-8" ?>
<TabbedPage
    xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
                     x:Class="MyApp.Pages.SomeClass"
    xmlns:Controls="clr-namespace:MyApp.Resources.Controls"
    xmlns:local="clr-namespace:MyApp.Pages"
                     Title="Some title">
    <local:Page1 />
    <local:Page2 />
    <local:Page3 />
</TabbedPage>

这些页面或多或少相同:

<?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"
                     x:Class="MyApp.Pages.Page1"
    xmlns:Controls="clr-namespace:MyApp.Resources.Controls"
    xmlns:VerticalStackLayout="clr-namespace:MyApp.Resources.Controls"      
                     Title="Vente">
    <VerticalStackLayout>
        <Label Text="Page 1"/>
    </VerticalStackLayout>
</ContentPage>

C# 代码:

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

选项卡式页面在 Windows 上正常工作:

然而,在物理 Android 设备上,打开选项卡式页面时出现以下异常。这些页面都没有 C# 内容。它们100%是空的。

0xFFFFFFFFFFFFFFFF in Android.Runtime.JNIEnv.monodroid_debugger_unhandled_exception C#
0x1A in Android.Runtime.JNINativeWrapper._unhandled_exception at /Users/runner/work/1/s/xamarin-android/src/Mono.Android/Android.Runtime/JNINativeWrapper.g.cs:12,5 C#
0x23 in Android.Runtime.JNINativeWrapper.Wrap_JniMarshal_PPLLL_L at /Users/runner/work/1/s/xamarin-android/src/Mono.Android/Android.Runtime/JNINativeWrapper.g.cs:353,26    C#
0xEE in Microsoft.Maui.Controls.Handlers.TabbedPageManager.SetTabLayout at D:\a\_work\1\s\src\Controls\src\Core\Platform\Android\TabbedPageManager.cs:240,5 C#
0x1BD in Microsoft.Maui.Controls.Handlers.TabbedPageManager.SetElement at D:\a\_work\1\s\src\Controls\src\Core\Platform\Android\TabbedPageManager.cs:162,5  C#
0x20 in Microsoft.Maui.Controls.TabbedPage.CreatePlatformView at D:\a\_work\1\s\src\Controls\src\Core\HandlerImpl\TabbedPage\TabbedPage.Android.cs:23,4 C#
0x10 in Microsoft.Maui.Controls.TabbedPage.OnCreatePlatformView at D:\a\_work\1\s\src\Controls\src\Core\HandlerImpl\TabbedPage\TabbedPage.Android.cs:30,5   C#
0x15 in Microsoft.Maui.Handlers.ViewHandler<Microsoft.Maui.ITabbedView,Android.Views.View>.OnCreatePlatformView at D:\a\_work\1\s\src\Core\src\Handlers\View\ViewHandlerOfT.cs:72,4 C#
0x1 in Microsoft.Maui.Handlers.ViewHandler.OnCreatePlatformElement at D:\a\_work\1\s\src\Core\src\Handlers\View\ViewHandler.cs:119,4    C#
0x1 in Microsoft.Maui.Handlers.ElementHandler.CreatePlatformElement at D:\a\_work\1\s\src\Core\src\Handlers\Element\ElementHandler.cs:96,4  C#
0x49 in Microsoft.Maui.Handlers.ElementHandler.SetVirtualView at D:\a\_work\1\s\src\Core\src\Handlers\Element\ElementHandler.cs:52,4    C#
0x2 in Microsoft.Maui.Handlers.ViewHandler.SetVirtualView at D:\a\_work\1\s\src\Core\src\Handlers\View\ViewHandler.cs:125,4 C#
0x2 in Microsoft.Maui.Handlers.ViewHandler<Microsoft.Maui.ITabbedView,Android.Views.View>.SetVirtualView at D:\a\_work\1\s\src\Core\src\Handlers\View\ViewHandlerOfT.cs:53,4    C#
0x7 in Microsoft.Maui.Handlers.ViewHandler<Microsoft.Maui.ITabbedView,Android.Views.View>.SetVirtualView at D:\a\_work\1\s\src\Core\src\Handlers\View\ViewHandlerOfT.cs:56,4    C#
0x65 in Microsoft.Maui.Controls.Element.SetHandler at D:\a\_work\1\s\src\Controls\src\Core\HandlerImpl\Element\Element.Impl.cs:64,6 C#
0x2 in Microsoft.Maui.Controls.Element.set_Handler at D:\a\_work\1\s\src\Controls\src\Core\HandlerImpl\Element\Element.Impl.cs:20,11    C#
0x18 in Microsoft.Maui.Controls.VisualElement.Microsoft.Maui.IElement.set_Handler at D:\a\_work\1\s\src\Controls\src\Core\HandlerImpl\VisualElement\VisualElement.Impl.cs:301,5 C#
0xB0 in Microsoft.Maui.Platform.ElementExtensions.ToHandler at D:\a\_work\1\s\src\Core\src\Platform\ElementExtensions.cs:96,4   C#
0x2 in Microsoft.Maui.Platform.ViewExtensions.ToHandler at D:\a\_work\1\s\src\Core\src\Platform\ViewExtensions.cs:44,4  C#
0xAA in Microsoft.Maui.Controls.Platform.Compatibility.ShellContentFragment.OnCreateView at D:\a\_work\1\s\src\Controls\src\Core\Compatibility\Handlers\Shell\Android\ShellContentFragment.cs:145,4 C#
0x24 in AndroidX.Fragment.App.Fragment.n_OnCreateView_Landroid_view_LayoutInflater_Landroid_view_ViewGroup_Landroid_os_Bundle_ at C:\a\_work\3\s\generated\androidx.fragment.fragment\obj\Release\net6.0-android\generated\src\AndroidX.Fragment.App.Fragment.cs:1999,4 C#
0xD in Android.Runtime.JNINativeWrapper.Wrap_JniMarshal_PPLLL_L at /Users/runner/work/1/s/xamarin-android/src/Mono.Android/Android.Runtime/JNINativeWrapper.g.cs:352,5  C#

.Net Maui 选项卡式页面可以在 Android 上运行吗?


如果您有兴趣使用 TabbedPage 浏览页面集合,请参阅此处的 maui 示例:标签页 https://github.com/dotnet/maui-samples/tree/main/7.0/Navigation/TabbedPage

它可以在我的 Android 物理设备上运行。

另一种选择是使用 shell 选项卡栏,如以下示例所示:Shell标签栏 https://github.com/dotnet/maui-samples/tree/main/7.0/Navigation/ShellTabBarSample

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 .Net Maui 中创建选项卡式页面? 的相关文章

随机推荐

  • 从 .glsl 文件读取 OpenGL 着色器语言

    我正在尝试从文件中读取着色器字符串 但是 我遇到了一个问题glShaderSource 功能线 如你所知 glShaderSource takes const char 我必须声明char 用于从文件中读取 因此 我使用强制转换来转换类型
  • .NET 异常有多慢?

    我不想讨论何时抛出异常以及不抛出异常 我想解决一个简单的问题 99 的情况下 不抛出异常的争论都围绕着异常缓慢而另一方声称 通过基准测试 速度不是问题 我读过大量与这一方面或另一方面相关的博客 文章和帖子 那么是哪一个呢 答案中的一些链接
  • 列表理解同时迭代两个变量[重复]

    这个问题在这里已经有答案了 是否有可能使用列表理解同时迭代两个变量 同时增加两个变量的循环位置 请参阅下面的示例 a 1 2 3 4 5 b 6 7 8 9 10 c i j for i in a for j in b This works
  • 在 Java 中如何查找前 2 个星期一的日期?

    可能是这样的 for int i 0 i lt 15 i Calendar cal new GregorianCalendar cal add Calendar DAY OF MONTH 1 if cal Calendar DAY OF W
  • 如何使用 JS (Internet Explorer) 以编程方式下载文件

    我有一个网页 其中有一个按钮 单击该按钮后 会生成一个 通过从 json 进行转换 csv 文件 该文件由浏览器下载 它本质上使用了这个逻辑jsfiddle https jsfiddle net 1ecj1rtz 这一切在 Chrome 中
  • C# DataGridViewButtonCell 设置按钮文本

    我需要添加我的DataGridViewButtonCell to Column 并且我需要用不同的名字来命名彼此 但我没有找到任何文本属性 有人可以帮我吗 我做那些事 DataGridViewButtonCell b new DataGri
  • linux如何删除第N行的最后一个字符

    我有一个具有类似结构的大文档 Data800 Data900 Data1000 我将如何删除第三行到最后一行的最后一个字符 在本例中 逗号位于 Data1000 旁边 输出应如下所示 Data800 Data900 Data1000 它始终
  • 系统上的 -isystem 包含目录会导致错误

    下面的代码是怎么回事 include
  • ValueError:无法从重复的轴 Pandas 重新索引

    所以我有一个基于fund id生成的时间序列数组 def get adj nav self fund id df nav read frame super class self filter fund id fund id nav gt 0
  • 使用 autofac 创建需要参数的对象的正确方法是什么?

    我想我已经了解了有关依赖倒置和使用 IoC 容器的大部分知识 但有一件事对我来说仍然不太清楚 如何使用 autofac 来自动化以下工厂 public class WidgetFactory public static IWidget Cr
  • 计算颜色值关系[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有可以计算两种颜色之间关系的网络应用程序 我有一个现有的样式指南 其中包含已确定的十六进制值 我想将
  • 我无法从 Firebase 存储(Angular/Ionic)获取图像 downloadUrl

    我正在尝试从 firebase 获取图像的 downloadUrl 所有属性 如 timeCreated fullPath contentType 都运行良好并正确推送 但我不知道为什么 downloadUrl 不起作用 captureAn
  • $_POST 中的 JQuery Mobile POST 数据为空

    我遇到了 JQuery Mobile 对我来说是新的 和 AJAX 调用的问题 我正在使用以下代码 ajax type POST url http correct url post todoitem beforeSend addHeader
  • 将富文本粘贴到 Flash 中?

    粘贴到 Flash 时是否可以捕获富文本 使用 Flex TextEditArea 我可以在 Flash 本身中粘贴格式丰富的文本 但如果我尝试从外部源 例如网页 Microsoft Word 等 粘贴 它会以纯文本形式出现 反之亦然 如果
  • 如何在 Nuxt 2 或 3 中使用 .env 变量?

    我的项目根目录中有 env 文件 在我的 nuxt 配置中 我使用变量来配置 ReCaptcha 如下所示 import dotenv from dotenv dotenv config export default modules nux
  • 基于 SQLite 支持的 ContentProvider 更新 ListView

    我是一名新的 Android 开发人员 似乎有点不知所措 当我向列表添加更多内容时 我试图进行 listView 更新 ListView 基于 SQLite 数据库 我能够通过为 SQLite 数据库创建一个 ContentProvider
  • 无法将数据写入 Firebase 实时数据库 Android

    我创建了一个 Firebase 并且可以将数据写入身份验证 但是 我无法将数据写入实时数据库 I have connected to Firebase 我已经添加了实时数据库 Import the BoM for the Firebase
  • 您在 Perl 程序中使用异常类吗?为什么或者为什么不?

    我有很多关于人们如何在 Perl 中使用异常的问题 我已经包含了一些有关例外情况的背景说明 如果您愿意 可以跳过此内容 但请花点时间阅读问题并做出答复 Thanks Perl 异常的背景 Perl 有一个非常基本的内置异常系统 为更复杂的使
  • Haskell 惰性评估和重用

    我知道如果我要在 Haskell 中计算平方列表 我可以这样做 squares x 2 x lt 1 然后当我这样调用方块时 print take 4 squares 它会打印出 1 0 4 0 9 0 16 0 其计算结果为 1 2 2
  • 如何在 .Net Maui 中创建选项卡式页面?

    我在 Net Maui 有一个选项卡式页面 如下所示