繁体   English   中英

隐藏/显示片段中的操作栏

[英]hide / show action bar in fragment

我有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...
    }
});

应用程式落后。 如何使它平滑?

在中间FragmentonResume回调中添加以下代码Fragment

AppCompatActivity activity = (AppCompatActivity) getActivity();
if (activity != null) {
    activity.getSupportActionBar().hide();
}

并在其他两个FragmentonResume回调中添加

AppCompatActivity activity = (AppCompatActivity) getActivity();
if (activity != null) {
    activity.getSupportActionBar().show();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM