私はナビゲーションドロワーと4つのナビゲーションアイテム(フラグメント)を持つアプリを持っています。フラグメントの1つでは、ビューページャー(3つのフラグメント)でタブレイアウトが設定されています。フラグメントからナビゲーションドロワーを無効にする
これらの内側のフラグメントの1つから、ナビゲーション・ドロワーを動的に使用不可にしたいとします。基本的には、ボタンを押すと、ナビゲーション・ドロワへのアクセスを制限したい(また、再度押すと再び有効にする)。
どうすればよいですか?
この内部フラグメントから親アクティビティのDrawerLayout
にアクセスしようとしました。しかし、ナビゲーション・ドロワを有効/無効にする方法はありません。
私は私のメインの活動に引き出しを追加した方法:
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
toggle = new ActionBarDrawerToggle(this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.setDrawerListener(toggle);
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
(もちろん私はメソッド内からtoggle.syncState()
を追加しましたこれを行うには
'DrawerLayout'に' setDrawerLockMode() 'を使い、' ActionBarDrawerToggle'に 'setDrawerIndicatorEnabled()'を使います。 –
@MikeM。 'setDrawerLockMode()'をセットするとスワイプジェスチャが止まりました。しかし 'setDrawerIndicatorEnabled()'を設定するには、私のフラグメント内から 'ActionBarDrawerToggle'にアクセスするにはどうしたらいいですか? – Roshnal
理想的には、Activityで実装されている 'interface'を通して理想的です。アクティビティの' interface'メソッドは上記のメソッドを呼び出します。 –