1

私はAndroidの断片の中でNavDrawerを無効にしようとしています。次のコードは、現在取り組んでいる:Xamarin.Droid - DrawerLayout.SetDrawerLockMode(x)がV7.SupportActionBarをクラッシュさせます

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)活動を)引き起こしています。 SupportActionBar私たちがそのアクティビティを開始したときのMainActivityのNull値。

私は方法を使用しない場合LockNavigationDrawer以下の行は、期待どおりに動作します。私はメソッドを呼び出すとき。 SupportActionBarが常に(null)であるため、NullPointerExceptionが発生します。

サポートアクションバー。セットホーム。

答えて

0

それはのOnCreateメソッドの非同期を無効にして、私の親クラスBaseActivityである主な理由:だから子供クラスは、時には親の前LoadCompletedをトリガー

protected async override void OnCreate(Bundle bundle) 
{ 
} 

、およびSupportActionBarがインスタンス化されなかったん。

関連する問題