如何在Android中隐藏状态栏

use*_*250 95 android android-theme android-statusbar

我提到了这个链接.在如果上的EditText用户点击(为前要:)在那个时候键盘会被弹出,并在同一时间,用户可以可以滚动查看所有剩余的视图(例如:撰写,主题,发送按钮),那个屏幕.同样在我的应用程序中,我有一个活动,我有一些小部件或视图.假设用户点击我的Activity中的Edittext然后键盘弹出,我可以滚动查看剩余的视图.但是如果我android:theme="@android:style/Theme.NoTitleBar.Fullscreen"在清单中给出这个属性我无法滚动查看剩余的视图但是如果android:theme="@android:style/Theme.NoTitleBar"在清单中给出这样的属性我可以滚动查看剩余视图但是在该屏幕中有状态栏,这里我想要全屏和即使弹出键盘,我也可以滚动查看剩余的视图..?我必须为此做些什么改变..?

Fug*_*ugo 157

在您的活动中写下此内容

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    requestWindowFeature(Window.FEATURE_NO_TITLE);
    this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
Run Code Online (Sandbox Code Playgroud)

点击此处查看文档:https://developer.android.com/training/system-ui/status.html

你的应用程序将全屏显示.没有状态栏,没有标题栏.:)

  • 请注意,如果您的活动超类在onCreate方法中调用setContentView,则此操作无效 - 应用程序将退出并发生异常. (24认同)
  • 在 `super.onCreate(savedInstanceState);` 之前使用它,如果它崩溃 (4认同)

Bob*_*bby 19

 if (Build.VERSION.SDK_INT < 16) {
   getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
 } else {
     View decorView = getWindow().getDecorView();
      int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
      decorView.setSystemUiVisibility(uiOptions);
      ActionBar actionBar = getActionBar();
      actionBar.hide();
 }
Run Code Online (Sandbox Code Playgroud)

  • 我注意到当我使用这种方法时,显示软键盘会将视图移动到editText上方,而不是调整大小.我该如何解决? (3认同)

Kar*_*ran 18

使用主题"Theme.NoTitleBar.Fullscreen"并尝试设置"android:windowSoftInputMode=adjustResize"活动AndroidManifest.xml.您可以在此处找到详细信息.


Cab*_*zas 12

如果你需要在一个活动中使用它,你必须在setContentView之前放入onCreate:

requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);

setContentView(R.layout.your_screen);
Run Code Online (Sandbox Code Playgroud)


Fax*_*yev 10

将其添加到您的Activity类

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    this.getWindow().setFlags(
                        WindowManager.LayoutParams.FLAG_FULLSCREEN, 
                        WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.activity_main);
    // some your code
}
Run Code Online (Sandbox Code Playgroud)


Ron*_*nie 9

如果您正在使用更高的 API,那么您可能已经注意到上述答案中提到的标志,即FLAG_FULLSCREENSYSTEM_UI_FLAG_FULLSCREEN已弃用。

要覆盖整个屏幕,您可以定义自定义主题:

<resources xmlns:android="http://schemas.android.com/apk/res/android">
    <style name="ActivityTheme" parent="Theme.AppCompat.NoActionBar">
        <item name="android:windowFullscreen">true</item>
    </style>
</resources>
Run Code Online (Sandbox Code Playgroud)

将主题添加到您的活动manifest类似地android:theme="@style/ActivityTheme"即可完成。

注意:您还可以直接在清单中添加预定义的@androidandroid:theme="@android:style/Theme.Holo.NoActionBar.Fullscreen"主题: 。在这种情况下,请确保您的活动Activity()不会延长AppCompatActivity(),尽管不建议这样做。


Pat*_*cky 8

用它来做你的Activity.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
Run Code Online (Sandbox Code Playgroud)


Sha*_*van 8

如果您要隐藏状态栏,请在 onCreate(对于 Activity)和 onCreateView/onViewCreated(对于 Fragment)中执行此操作

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
Run Code Online (Sandbox Code Playgroud)

并且不要忘记退出活动时清除标志,否则访问此活动后您的整个应用程序将全屏。要清除,请在 onDestroy(对于 Activity)或 onDestroyView(对于 Fragment)中执行此操作

getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN)
Run Code Online (Sandbox Code Playgroud)


Yog*_*dra 6

更改manifest.xml文件中的应用程序主题.

android:theme="@android:style/Theme.Translucent.NoTitleBar"
Run Code Online (Sandbox Code Playgroud)


Far*_*aev 6

void hideStatusBar() {
        if (Build.VERSION.SDK_INT < 16) {
           getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                    WindowManager.LayoutParams.FLAG_FULLSCREEN);
        } else {
            View decorView = getWindow().getDecorView();
            int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
            decorView.setSystemUiVisibility(uiOptions);
        }
    }
Run Code Online (Sandbox Code Playgroud)

您可以使用此方法隐藏状态栏.这也是隐藏操作栏的重要因素.在这种情况下,如果您已经从Appcompat等支持库扩展了活动,则可以使用getSupportActionBar().hide(),或者您可以在上述方法之后调用getActionBar().hide().谢谢


Muh*_*han 5

使用此代码:

requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
super.onCreate(savedInstanceState);
setContentView(R.layout.youractivityxmlname);
Run Code Online (Sandbox Code Playgroud)


Har*_*ani 5

此代码隐藏状态栏。

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
Run Code Online (Sandbox Code Playgroud)

要隐藏操作栏,请写入以下行:-

requestWindowFeature(Window.FEATURE_NO_TITLE);
Run Code Online (Sandbox Code Playgroud)

这两行可以共同编写以隐藏操作栏和状态栏。setContentView所有这些行必须在方法中的方法调用之前编写onCreate


小智 5

在 AndroidManifest.xml -> 要使用的活动中,添加以下内容:

android:theme="@style/Theme.AppCompat.Light.NoActionBar"
//this is for hiding action bar
Run Code Online (Sandbox Code Playgroud)

在 MainActivity.java -> onCreate() 方法中,添加以下内容:

this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
//this is for hiding status bar
Run Code Online (Sandbox Code Playgroud)


小智 5

您可以使用 styles.xml 隐藏

<resources>

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>
<style name="HiddenTitleTheme" parent="AppTheme">
    <item name="windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
</style>
Run Code Online (Sandbox Code Playgroud)

只需在清单中这样称呼它即可android:theme="@style/HiddenTitleTheme"


Pra*_*eep 5

使用此代码可在您的应用中隐藏状态栏,并且易于使用

getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
Run Code Online (Sandbox Code Playgroud)


小智 5

这对我来说是最好的解决方案,只需在 theme.xml 中写入这一行

<style name="MyApp" parent="Theme.AppCompat.Light.NoActionBar">
...
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="android:windowFullscreen">true</item>
...
</style>
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

157980 次

最近记录:

6 年,1 月 前