从片段中完全删除操作栏

时间:2018-07-03 15:39:29

标签: java android android-actionbar android-fragmentactivity

我目前正在尝试更改应用程序的外观。

该应用程序使用3个片段,这些片段可以根据网络状态变化进行调用。片段全部设置为横向,这导致动作栏成为屏幕的很大一部分。我试图找到一种方法来完全删除操作栏,并允许布局扩展到整个屏幕。

我已经尝试过类似的事情:

getActionBar()。hide();

主题更改

setSystemUiVisibility();

这些选项将在应该显示的屏幕上创建一个较大的栏,或者始终显示操作栏。

我认为这与片段工作的方式有关,我只是不了解。

2 个答案:

答案 0 :(得分:0)

如果您使用的是AppCompatActivity,请按照以下步骤进行操作。

((AppCompatActivity )getActivity()).getSupportActionBar();

答案 1 :(得分:0)

如果您想从应用程序中完全删除 ActionBar (AppBar),请按照以下步骤操作:

  
      
  • 转到您的 AndroidManifest.xml
  •   
  • 编辑此行:android:theme="@style/{theme}">android:theme="@style/Theme.AppCompat.Light.NoActionBar">或   以NoActionBar结尾的任何内容。
  •   

如果您只想从Fragment中删除 ActionBar ,则在Fragment的onCreateView()中添加下一个代码:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    // create ContextThemeWrapper from the original Activity Context with the custom theme
    final Context contextThemeWrapper = new ContextThemeWrapper(getActivity(), R.style.yourCustomTheme);

    // clone the inflater using the ContextThemeWrapper
    LayoutInflater localInflater = inflater.cloneInContext(contextThemeWrapper);

    // inflate the layout using the cloned inflater, not default inflater
    return localInflater.inflate(R.layout.yourLayout, container, false);
}

或者,如果您想从活动中删除 ActionBar ,请将这一行代码添加到活动的onCreate()方法中。

  

setTheme(R.style.{your style}

     

记住

     
      
  • {style}应该以{{1​​}}结尾
  •   
  • 最重要的是,在这两行代码之前之前添加代码(将其添加到方法顶部):

    NoActionBar
  •   

希望这个答案有所帮助!