几个Xamarin.Forms Android活动

时间:2017-04-23 10:58:36

标签: xamarin xamarin.android xamarin.forms

我想使用几个Android活动。首先是一般应用。第二是通知视图。它们具有不同的活动设置,因此我无法在此问题中使用一个活动。

我尝试这样做:

[Activity(Label = "Life Manager", MainLauncher = true, Icon = "@drawable/icon")]
public class MainActivity : FormsApplicationActivity
{
    protected override void OnCreate(Bundle bundle)
    {
        base.OnCreate(bundle);
        Forms.Init(this, bundle);
        ActionBar.SetIcon(new ColorDrawable(Color.Transparent));
        LoadApplication(new TimeManagerApplication());

        Device.StartTimer(new TimeSpan(0, 0, 0, 5), OpenNotificationActivity);
    }

    private bool OpenNotificationActivity()
    {
        Intent intent = new Intent(this, typeof(NotificationActivity));
        StartActivity(intent);
        return false;
    }
}

[Activity(Label = "NotificationActivity")]
public class NotificationActivity : FormsApplicationActivity
{
    protected override void OnCreate(Bundle savedInstanceState)
    {
        RequestWindowFeature(WindowFeatures.NoTitle);
        Window.AddFlags(WindowManagerFlags.Fullscreen | WindowManagerFlags.KeepScreenOn);

        base.OnCreate(savedInstanceState);

        Forms.Init(this, savedInstanceState);
        LoadApplication(new NotificiationApplication());
    }
}

在这一行:

LoadApplication(new NotificiationApplication());

我接受了错误:

System.NullReferenceException: Object reference not set to an instance of an object.

如何在一个应用程序中使用两个Android活动并使用跨平台的Xamarin.Forms视图?

更新

如果没有这些线路,应用程序就能完美运行:

//RequestWindowFeature(WindowFeatures.NoTitle);
//Window.AddFlags(WindowManagerFlags.Fullscreen | WindowManagerFlags.KeepScreenOn);

但是如何隐藏状态栏并使用全屏视图?

1 个答案:

答案 0 :(得分:0)

我决定了这个问题。

要使用没有状态栏的全屏视图,只需使用Window Flags

Window.AddFlags(WindowManagerFlags.Fullscreen | WindowManagerFlags.KeepScreenOn);

RequestWindowFeature(WindowFeatures.NoTitle);

应用程序按预期工作,没有例外。