【问题标题】:It is possible to show page in own activity in Xamarin.Forms on Android?可以在 Android 上的 Xamarin.Forms 中自己的活动中显示页面吗?
【发布时间】:2020-04-30 15:03:14
【问题描述】:

我想在页面之间导航,开始和完成任何新页面的新活动,并在自己的活动中显示此页面。如何实现这种行为?

【问题讨论】:

  • 是的,如果您使用 Xamarin.Forms“嵌入”,基本上您正在使用 Android Activity 生命周期并在每个 Activity 上嵌入一个 ContentPage。当然,您放弃了让表单Application 浮动的所有有用功能。就个人而言,您可能希望仅将 Xamarin.Android Native 用于 UI,并使用 C# 作为应用逻辑后端中的常见“可共享”代码。
  • 可以吗?

标签: android xamarin xamarin.forms xamarin.android


【解决方案1】:

答案是肯定的,你可以看看Native Forms

对于 iOS:

在ios项目AppDelegate

public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
{
    Forms.Init();

   ...

    UIViewController mainPage = new NotesPage().CreateViewController();
    mainPage.Title = "Notes";

    _navigation = new AppNavigationController(mainPage);
    _window.RootViewController = _navigation;
    _window.MakeKeyAndVisible();

    return true;
}

对于安卓:

在 Android 项目中你的活动,它将你的页面转换为片段,然后你可以将它填充到你的活动中:

Android.Support.V4.App.Fragment mainPage = new NotesPage().CreateSupportFragment(this);
SupportFragmentManager
        .BeginTransaction()
        .Replace(Resource.Id.fragment_frame_layout, mainPage)
        .Commit();

【讨论】:

    【解决方案2】:

    在 Android Xamarin.Forms 上,使用 Fragments 在页面之间导航。

    如果您不喜欢它,您可以分叉 Xamarin.Forms 并更改代码以按照您希望的方式工作:https://github.com/xamarin/Xamarin.Forms

    这将使某些包与您的 Xamarin.Forms 分支不兼容,如果您打算使用它们,您可能需要考虑这些包。

    此外,如果您考虑所需的时间和知识,这并非易事。极不可能有人代替您完成这项工作并为您提供插件解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多