我试图从片段中隐藏NavigationDrawer和ActionBar。
我创建了以下界面,并在活动中实现了相同的界面
public interface CommonMethodsListener {
void hideActionbar();
void showActionbar();
void setActionBarTitle(String title);
}
我已经在Activity中实现了以下方法。
public void setDrawerEnabled(boolean enabled) {
int lockMode = enabled ? DrawerLayout.LOCK_MODE_UNLOCKED :
DrawerLayout.LOCK_MODE_LOCKED_CLOSED;
drawer.setDrawerLockMode(lockMode);
toggle.setDrawerIndicatorEnabled(enabled);
}
@Override
public void hideActionbar() {
getSupportActionBar().hide();
setDrawerEnabled(false);
}
@Override
public void showActionbar() {
getSupportActionBar().show();
setDrawerEnabled(true);
}
我在下面的片段中调用hideActionBar()
和showActionBar()
@Override
public void onResume() {
super.onResume();
mCommonMethodsListener.hideActionbar();
}
@Override
public void onPause() {
super.onPause();
mCommonMethodsListener.showActionbar();
}
我无法使用上面的代码隐藏ActionBar和NavigationDrawer。
我有两个分别称为SplashFragment
和LoginFragment
的片段。我在两个片段中都叫hideActionBar()
和'showActionBar()in
onResume()and
onPause()`。
SplashFragment
的加载没有ActionBar
和NavigationDrawer
。在预先设置的3000毫秒延迟后,带有Handler
的{{1}}将导航到postDelayed
。
LoginFragment
和 LoginFragment
和ActionBar
一起出现。
build.gradle如下。
NavigationDrawer
答案 0 :(得分:0)
您应该将片段中的调用方法更改为
onResume()-> onCreate()
onPause()-> onDestroy()
当片段附加到活动时,这两种方法都被调用一次
答案 1 :(得分:0)
更改
mCommonMethodsListener.hideActionbar();
mCommonMethodsListener.setDrawerEnabled(False);
至
((Activity)getActivity()).hideActionbar();
((Activity)getActivity()).setDrawerEnabled(False);
并将其放入OnCreate()