【问题标题】:android how to hide the status bar without hiding the title barandroid如何隐藏状态栏而不隐藏标题栏
【发布时间】:2011-08-07 05:15:05
【问题描述】:

在我的应用程序中,我正在使用画布。我在画布上画画。我把画布颜色设为白色。当我的应用程序打开时,画布与上面的状态栏一起可见。 但我希望我的画布应该全屏显示。意味着当我运行该应用程序而不是标题栏时通知状态栏应该消失(bcz我使用一些自定义标题栏) 我该怎么做?

通过使用下面的代码,我给出了自定义标题,

requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);

getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_title);

现在我正在尝试在活动中使用以下代码隐藏状态栏-

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

在 AndroidManifest.xml 中

android:theme="@android:style/Theme.NoTitleBar.Fullscreen"

但它显示强制关闭。 给我一个方法怎么做?

【问题讨论】:

  • 你能告诉我们错误以及你在哪里使用这部分代码吗?
  • 是的,08-07 11:20:31.831:错误/AndroidRuntime(916):java.lang.RuntimeException:无法启动活动 ComponentInfo{com.v3.scribeair.lite/com.v3。 scribeair.lite.ScribeAirActivity}:android.util.AndroidRuntimeException:您不能将自定义标题与其他标题功能结合使用
  • 但我的应用程序中没有 theme.xml。我在哪里可以找到?
  • “但我希望我的画布可以全屏显示”——这在 Android 3.x 上是不可能的。

标签: android statusbar


【解决方案1】:

删除线就够了

 requestWindowFeature(Window.FEATURE_NO_TITLE);

但如果你想全屏显示(没有操作栏)也写

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


  setContentView(R.layout.activity_location_eb);

【讨论】:

    【解决方案2】:

    设置Theme.NoTitleBar后不能使用Window.FEATURE_CUSTOM_TITLE。只使用这个主题就足够了。不要在代码中设置所有这些标志。

    编辑:看来我误解了你的问题。我又仔细阅读了一遍,现在我看到您在询问有关 Android 2.x 及其通知栏的问题。您的 onCreate() 方法应如下所示:

    public void onCreate(final Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    
        requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
    
        setContentView(R.layout.name);
    
        getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_title);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                    WindowManager.LayoutParams.FLAG_FULLSCREEN);
    }
    

    您不得为此活动设置Theme.NoTitleBarTheme.NoTitleBar.Fullscreen。只需使用默认的Theme 或根本不指定任何主题。

    【讨论】:

    • 这样会不会让状态栏消失,自定义标题会变得可见?
    • 不,不会。如果您指的是 Android 3.x,那么标题栏是可选的,而状态栏是必要的,因为它包含诸如主页和返回之类的按钮。 Android 3.x 不需要这些按钮是硬件。
    • 还有其他方法可以解决我的问题吗?
    • 我不确定,但如果我知道答案,我会回答你。
    • 摆脱自定义标题,只需使用LinearLayout 将其放在Canvas 上方的布局中。然后,您可以隐藏标题栏和状态栏。
    【解决方案3】:

    我将告诉你如何分别完美地处理标题栏和系统通知面板。 根据您的需要使用一种或两种。

    1.不要通过 XML 将任何主题应用于 Activity。

    2.现在,去纠正。 Java 文件并添加这些行 在 onCreate().. 之后 super.onCreate()..

    Part.a.只删除标题栏

    this.requestWindowFeature(Window.FEATURE_NO_TITLE);
    

    Part.b。删除系统通知面板

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

    不要忘记照常跟随他们

    setContentView(R.layout.activity_layout_name);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-10
      • 1970-01-01
      • 2011-04-29
      相关资源
      最近更新 更多