Xamarin.Droid - DrawerLayout.SetDrawerLockMode(x) 崩溃 V7.SupportActionBar

Xamarin.Droid - DrawerLayout.SetDrawerLockMode(x) crashes V7.SupportActionBar

我在 Android 片段中时试图禁用 NavDrawer。以下代码当前有效:

public class MainActivity : BaseActivity
{
    protected override void OnCreate(Bundle savedInstanceState)
    {
         SupportActionBar.SetHomeAsUpIndicator(Resource.Drawable.ic_menu);
    }

    public void LockNavigationDrawer()
    {
        if(drawerLayout != null)
            drawerLayout.SetDrawerLockMode(DrawerLayout.LockModeLockedClosed);
    }

    public void UnlockNavigationDrawer()
    {
        if (drawerLayout != null)
            drawerLayout.SetDrawerLockMode(DrawerLayout.LockModeUnlocked);
    }
}

然后我调用片段中的方法:

((MainActivity)Activity).LockNavigationDrawer();

这导致我的 ((Android.Support.V7.App.AppCompatActivity)Activity).SupportActionBar Main[=31 处的空值=] 当我们开始 activity.

如果我不使用 LockNavigationDrawer 方法,下面的行将按预期工作。当我调用该方法时。它会导致 NullPointerException,因为 SupportActionBar 始终为 (null)。

SupportActionBar.SetHomeAsUpIndicator(Resource.Drawable.ic_menu);

主要原因是我的父 class BaseActivity 被异步覆盖了 OnCreate 方法:

protected async override void OnCreate(Bundle bundle)
{
}

所以 Child class 有时会在 Parent 之前触发 LoadCompleted,而 SupportActionBar 从未被实例化。