首页 > 解决方案 > 如何在不从 Xamarin.Forms 的第一页重新启动应用程序的情况下重新创建 Android 中最顶层的 Activity?

问题描述

据说,当我们更改主题时,我们必须在android中重新创建当前活动才能使其生效。

Xamarin.Forms我获得当前活动时,它总是返回 me MainActivity。因此,如果我重新创建最顶层的活动,它会从第一页开始,而不是刷新当前页面。

有什么方法可以让我重新创建活动并仍然在我所在的页面上。

前任 :

当前行为:页面 A -> B -> C -> D -> 重新创建 -> 再次从 A 开始。

预期行为:页面 A -> B -> C -> D -> 重新创建 -> 应该只在 D 上 b 并且仍然应该能够更改主题。

我意识到,Xamarin.Forms将所有内容页面作为片段推送到MainActivity. 那么,通过何种方式,Activity 被重新创建但仍然保持所有已加载的 Fragments 再次加载?

我的实现很简单。当我更改主题时,我调用平台特定的依赖服务方法:

[assembly: Dependency(typeof(NativeServices))]
namespace XFThemes.Droid.Dependencies
{
    public class NativeServices : INativeServices
    {
        public void OnThemeChanged(ThemeManager.Themes theme)
        {            
            CrossCurrentActivity.Current.Activity.Recreate();
        }
    }
}

标签: xamarinxamarin.formsxamarin.android

解决方案


推荐阅读