【问题标题】:Unable to hide action bar无法隐藏操作栏
【发布时间】:2015-04-23 19:52:09
【问题描述】:

我尝试创建一个新的 Android 应用程序,并尝试在 MainActivity 的构造函数中隐藏操作栏,使用行 requestWindowFeature(Window.FEATURE_NO_TITLE);

我以前做过很多次,这没有任何问题。但是当我现在尝试相同时,它会抛出一个错误,提示“必须在添加内容之前调用请求功能”

即使我尝试在不同的位置添加这条线,但结果没有任何变化。谁能帮我解决这个问题。

【问题讨论】:

  • 您使用的是哪个主题?
  • 在调用 setContentView 之前调用它
  • Theme.AppCompat.Light 这是我的清单中显示的一个,我也不记得我在创建项目时选择的那个
  • 是的,我试过在任何地方都调用这条线,比如在 setContentView、super.onCreate 之前和之后……但没有任何变化

标签: android android-actionbar


【解决方案1】:

有两种方法可以隐藏actionbar。我假设您使用的是Theme.AppCompat.Light 样式和您的活动extends ActionBarActivity

将下面几行设置为您的styles.xml

 <item name="windowActionBar">false</item>

或者

在您的 java 文件中设置以下行。

getSupportActionBar().hide();

【讨论】:

  • 非常感谢。这对我有用。 getSupportActionBar().hide();
【解决方案2】:

你可以这样试试:

getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
    super.onCreate(savedInstanceState);

应该在Activity的onCreate()方法中的setContentView()方法之前调用。

【讨论】:

    【解决方案3】:

    你应该在super.onCreate(savedInstanceState);之前添加requestWindowFeature(Window.FEATURE_NO_TITLE);

    @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            requestWindowFeature(Window.FEATURE_NO_TITLE);
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
    

    【讨论】:

      【解决方案4】:

      这应该可以。把它放在 super.onCreate(savedInstanceState); 之后

      getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                  WindowManager.LayoutParams.FLAG_FULLSCREEN);
      

      一切顺利。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-03-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-02-01
        相关资源
        最近更新 更多