Это то, что вы можете попробовать, где вы хотите переключить блок навигации в вашем фрагменте, таким образом, вам нужно будет написать метод в действии, чтобы делать то, что вы хотите сделать из вашего фрагмента, убедитесь, что это публичный метод:
((MainActivity)getContext()).toggleDrawer();
в вашей MainActivity:
public void toggleDrawer(){
//do your stuff
}
Другой способ - это обратный вызов или интерфейс (предпочтительный), передать его в качестве параметра в конструктор фрагмента и использовать его там, где вы хотите изменитьсостояние ящика.Как внутри вашей деятельности:
Callback callback = new Callback(){
@Override
public void onDrawerStateChanged(){
//do your stuff
}};
new DictionaryFragment(callback);
А внутри вашего фрагмента вам нужно написать конструктор, чтобы принять этот обратный вызов и сохранить в локальной переменной:
public DictionaryFragment() {
}
@SuppressLint("ValidFragment")
public DictionaryFragment(Callback callback) {
this.callback = callback;
}
И использовать его следующим образом:
callback.onDrawerStateChanged();
Вы также можете передавать параметры в MainActivity в обоих направлениях.