Android 隐藏状态栏的方法
我引用了这个链接。如果用户单击 EditText(例如 To: ),此时键盘将弹出,同时用户可以滚动查看所有剩余视图(例如:撰写、主题、发送按钮)那个屏幕。同样,在我的应用程序中,我有一项活动,即我有一些小部件或视图。 假设如果用户单击我的 Activity 中的 Edittext,则键盘会弹出,我可以滚动查看剩余的视图。但是,如果我在清单中给出此属性 android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
我无法滚动查看剩余视图,但如果给出属性 android:theme ="@android:style/Theme.NoTitleBar"
像这样在清单中我可以滚动查看剩余视图,但该屏幕中有状态栏,这里我想要全屏,即使键盘弹出我可以滚动查看剩余视图..?我必须为此做出哪些改变..?
I referred this link. In that if the user clicks on EditText(for ex To: ) at that time keyboard will be popped out and at the same time the user can be able to scroll to see all remaining views(ex: compose,subject, send button) in that screen. Similarly in my app I have one activity in that I am having some widgets or views.
Suppose if the user clicks on Edittext which is in my Activity then keyboard is popping out and i can be able to scroll to see remaining views. But if i give this attribute android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
in manifest i was unable to scroll to see remaining views but if give attribute android:theme="@android:style/Theme.NoTitleBar"
like this in manifest I can be able to scroll to see remaining view but there is status bar in that screen, here I want full screen and even if the keyboard is popped out I can scroll to see remaining views..? what changes I have to made for this..?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(30)
在
清单
中使用Used in
Manifest
如果您参考 Google 文档,您可以在 android 4.1 和上面,在setContentView()之前调用这个方法
If you refer to the Google Documents you can use this method for android 4.1 and above, call this method before setContentView()
在 Style.xml 文件中添加或替换
Add or Replace in Style.xml File
我们可以通过使用 setSystemUiVisibility() 在 Android 4.1(API 级别 16)及更高版本中隐藏状态栏
根据 google 文档,如果
状态栏是隐藏的,因此如有必要也将其隐藏。
We can hide status bar in Android 4.1 (API level 16) and higher by using setSystemUiVisibility()
As per google document we should never show the action bar if the
status bar is hidden, so hide that too if necessary.
将其写在您的活动
检查文档中:https://developer.android.com/ Training/system-ui/status.html
并且您的应用程序将全屏显示。没有状态栏,没有标题栏。 :)
Write this in your Activity
Check Doc here : https://developer.android.com/training/system-ui/status.html
and your app will go fullscreen. no status bar, no title bar. :)
使用此代码隐藏应用程序中的状态栏并且易于使用
Use this code for hiding the status bar in your app and easy to use
使用主题
"Theme.NoTitleBar.Fullscreen"
并尝试在AndroidManifest.xml
中为 Activity 设置"android:windowSoftInputMode=adjustResize"
。在此处查找详细信息。Use theme
"Theme.NoTitleBar.Fullscreen"
and try setting"android:windowSoftInputMode=adjustResize"
for the activity inAndroidManifest.xml.
You can find details here.如果您在一个 Activity 中需要此功能,则必须在 setContentView 之前放入 onCreate:
If you need this in one activity, you have to put in onCreate, before setContentView:
将其添加到您的 Activity 类中
Add this to your Activity class
如果您要隐藏状态栏,请在 onCreate(对于 Activity)和 onCreateView/onViewCreated(对于 Fragment)中执行此操作,
并且不要忘记在退出 Activity 时清除标志,否则访问后您将在整个应用程序中全屏显示这项活动。
要清除,请在 onDestroy(对于 Activity)或 onDestroyView(对于 Fragment)中执行此操作
If you are hiding the status bar do this in onCreate(for Activity) and onCreateView/onViewCreated(for Fragment)
And don't forget to clear the flag when exiting the activity or else you will have the full screen in your whole app after visiting this activity.
To clear do this in your onDestroy(for Activity) or onDestroyView(for Fragment)
如果您正在使用更高的 API,那么您可能已经注意到上述答案中提到的标志,即
FLAG_FULLSCREEN
和SYSTEM_UI_FLAG_FULLSCREEN
已被弃用。要覆盖整个屏幕,您可以定义自定义主题:
在
manifest
中的 activity 中添加主题,例如android:theme="@style/ActivityTheme"
你就完成了。注意:您还可以直接在清单中添加预定义的@android主题:
android:theme="@android:style/Theme.Holo.NoActionBar。全屏”
。在这种情况下,请确保您的 Activity 扩展
Activity()
而不是AppCompatActivity()
,尽管不建议这么做。If you are working with higher API then you may have noticed the flags as mentioned by the above answers i.e.
FLAG_FULLSCREEN
andSYSTEM_UI_FLAG_FULLSCREEN
are deprecated.To cover up the whole screen you can define a custom theme:
Add the theme in your activity in the
manifest
likeandroid:theme="@style/ActivityTheme"
and you are done.Note: You can also add pre-defined @android themes directly in your manifest:
android:theme="@android:style/Theme.Holo.NoActionBar.Fullscreen"
.In such cases make sure your activity extends
Activity()
notAppCompatActivity()
although it's not recommended.将其用于您的
活动
。Use this for your
Activity
.您可以使用此方法来隐藏状态栏。这对于隐藏操作栏也很重要。在这种情况下,如果您已从 Appcompat 等支持库扩展了 Activity,则可以 getSupportActionBar().hide(),或者只需调用 getActionBar().hide()经过上述方法后。谢谢
You can use this method to hide the status bar. And this is important to hide the action bar too. In this case, you can getSupportActionBar().hide() if you have extended the activity from support lib like Appcompat or you can simply call getActionBar().hide() after the method mentioned above. Thanks
在
manifest.xml
文件中更改应用程序的主题。Change the theme of application in the
manifest.xml
file.此代码隐藏状态栏。
要隐藏操作栏,请写入以下行:-
可以将这两行一起写入以隐藏操作栏和状态栏。所有这些行必须在
onCreate
方法中的setContentView
方法调用之前编写。This code hides status bar.
to hide action bar write this line:-
both lines can be written collectively to hide Action bar and status bar. all these lines must be written before
setContentView
method call inonCreate
method.使用此代码:
Use this code:
在AndroidManifest.xml中->在您要使用的活动内,添加以下内容:
并在 MainActivity.java -> 中在 onCreate() 方法中,添加以下内容:
In AndroidManifest.xml -> inside the activity which you want to use, add the following:
and in MainActivity.java -> inside onCreate() method, add the following :
您可以使用 styles.xml 隐藏
只需在清单中这样调用
android:theme="@style/HiddenTitleTheme"
You can hide by using styles.xml
just call this in your manifest like this
android:theme="@style/HiddenTitleTheme"
这对我来说是最好的解决方案,只需在 theme.xml 中写入这一行
this is the best solution for me , just write this line in your theme.xml
您可以通过使用 xml 将状态栏的颜色设置为透明来隐藏状态栏。将 statusBarColor 项目添加到您的活动主题:
You can hide status bar by setting it's color to transperant using xml. Add statusBarColor item to your activity theme:
由于 FLAG_FULLSCREEN 已从 android R 中弃用。您可以使用下面的代码来隐藏状态栏。
As FLAG_FULLSCREEN is deprecated from android R. You can use below code to hide status bar.
隐藏状态栏
显示
顶部相机与屏幕剪切的状态栏
Hide StatusBar
show StatusBar
for top camera cut with screen
包括 android api 30,这对我有用
including android api 30, this works for me
我坚持使用干净且可扩展的方法来显示和隐藏系统 UI,它适用于不同的 Android Api 级别:
例如,要隐藏系统栏,可以从
Fragment
调用它:The clean and scalable approach to show and hide system UI I stick to, which works for different Android Api levels:
And for example to hide system bars, it can be called from a
Fragment
:这是关于在 Android 4.0 及更低版本和 Android 4.1 及更高版本上隐藏状态栏的官方文档
请查看它:
https://developer.android.com/training/system-ui/status.html
This is the official documentation about hiding the Status Bar on Android 4.0 and lower and on Android 4.1 and higher
Please, take a look at it:
https://developer.android.com/training/system-ui/status.html
我们无法阻止状态在(4.4+)kitkat 或更高版本的设备中以全屏模式显示,因此请尝试阻止状态栏展开。
解决方案非常大,所以这里是SO的链接:
StackOverflow:在 Android 4.4+ 或全屏 Kitkat 中隐藏状态栏
We cannot prevent the status appearing in full screen mode in (4.4+) kitkat or above devices, so try a hack to block the status bar from expanding.
Solution is pretty big, so here's the link of SO:
StackOverflow : Hide status bar in android 4.4+ or kitkat with Fullscreen
这个解决方案对我有用:)
This solution work for me :)