我MainActivity
延伸AppCompatActivity
。在那3个可以通过滑动手势改变的片段中。我想删除中间的操作栏。当用户在第一个或第三个片段中滑动时,再次添加操作栏。
我的代码如下:
@Override
public void setMenuVisibility(boolean menuVisible) {
super.setMenuVisibility(menuVisible);
if(menuVisible && getActivity()!=null){
getActivity().getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
}
@Override
public void setMenuVisibility(boolean menuVisible) {
super.setMenuVisibility(menuVisible);
if(menuVisible){
getActivity().getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
}
但是,它给了我以下警告:
跳过45帧!应用程序可能在其主线程上做了太多工作。
我试着把它放进去:
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
// hide / show action bar...
}
});
应用程序滞后。我怎样才能让它顺利?
答案 0 :(得分:0)
在中间Fragment
AppCompatActivity activity = (AppCompatActivity) getActivity();
if (activity != null) {
activity.getSupportActionBar().hide();
}
回调中添加以下代码段
onResume
并在其他两个Fragment
的{{1}}回调中添加
AppCompatActivity activity = (AppCompatActivity) getActivity();
if (activity != null) {
activity.getSupportActionBar().show();
}