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..?

- 995
- 1
- 10
- 21

- 1,614
- 2
- 13
- 15
-
3@user448250: Note that you cannot hide the status bar in Android 3.0, and there is a decent chance that you will not be able to hide the status bar going forward. In Android 3.0, the status bar houses the BACK and HOME buttons, so the status bar needs to be always available. – CommonsWare Mar 25 '11 at 11:25
-
I have just managed to hide both the title and status bar on the emulator with 3.0, API level 11. – erdomester Nov 02 '12 at 20:09
-
Full screen should be still allowed, user usually doesn't want to see status bar when playing full screen game. – Sam YC Dec 05 '13 at 07:37
-
@user448250 Did you ever find this out? – Bitcoin Cash - ADA enthusiast Feb 27 '14 at 02:35
-
What is activity at all? It it some xml file in your website folder? – Nebular Dust Nov 28 '15 at 06:17
36 Answers
Write this in your 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);
}
Check Doc here : https://developer.android.com/training/system-ui/status.html
and your app will go fullscreen. no status bar, no title bar. :)

- 8,057
- 8
- 35
- 54

- 4,460
- 10
- 36
- 50
-
33Note that this will not work if your activity superclass calls setContentView in the onCreate method - the app will quit with an exception. – Ben Clayton Oct 25 '12 at 10:21
-
1@Ron I was testing on API level 8. It's possible the behaviour is different on other levels? – Ben Clayton Jan 21 '13 at 14:02
-
-
In this case how to apply scroll view?.. If it applies,is it works? what we can do to work scroll view here. – Shailendra Madda Jan 25 '14 at 06:11
-
1This still prevents the screen from scrolling when the software keyboard is being shown. – Bitcoin Cash - ADA enthusiast Feb 27 '14 at 02:35
-
Carefull, Call it after setContentView(). Also, better use addFlags() to save previous flags. – M. Usman Khan Mar 10 '14 at 11:10
-
It crashes, even if I place it before or after the `setContentView()` – patrickjason91 Jan 13 '15 at 07:05
-
8
-
Is there any workaround to hide status bar globally ? setting this in every activity sounds stupid – Raptor Jul 15 '16 at 11:33
-
It kills me that SO put top answers at the bottom of the page :facepalm: – IliaEremin Aug 08 '17 at 19:41
Use this code for hiding the status bar in your app and easy to use
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);

- 1,024
- 11
- 15
Use theme "Theme.NoTitleBar.Fullscreen"
and try setting "android:windowSoftInputMode=adjustResize"
for the activity in AndroidManifest.xml.
You can find details here.
-
With the above approach, my status bar can be hidden when the app is running full screen, however, I can still see the status bar while I swiping down the page. Is there is a way if I don't want the status bar at all? – Hazel Wang Jun 12 '20 at 14:34
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();
}

- 6,115
- 4
- 35
- 36
-
3I've noticed that when I use this method, showing the soft-keyboard moves the views above the editText, instead of resizing things. How do I fix this? – android developer Jun 23 '15 at 08:48
If you need this in one activity, you have to put in onCreate, before setContentView:
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.your_screen);

- 9,329
- 7
- 67
- 69
Add this to your Activity class
@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
}

- 17,687
- 10
- 38
- 51

- 4,169
- 2
- 35
- 37
If you are hiding the status bar do this in onCreate(for Activity) and onCreateView/onViewCreated(for Fragment)
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
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)
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN)

- 2,150
- 1
- 20
- 20
Use this for your 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);
}

- 281
- 2
- 17

- 766
- 8
- 17
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);
}
}
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

- 8,219
- 6
- 41
- 57

- 2,342
- 1
- 26
- 33
If you are working with higher API then you may have noticed the flags as mentioned by the above answers i.e. FLAG_FULLSCREEN
and SYSTEM_UI_FLAG_FULLSCREEN
are deprecated.
To cover up the whole screen you can define a custom theme:
<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>
Add the theme in your activity in the manifest
like android: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()
not AppCompatActivity()
although it's not recommended.

- 207
- 4
- 11
Change the theme of application in the manifest.xml
file.
android:theme="@android:style/Theme.Translucent.NoTitleBar"

- 8,057
- 8
- 35
- 54

- 4,817
- 1
- 28
- 21
-
Strangely enough this shows an orange bar at the top of the screen. The notification bar is hidden though. – Danish Ashfaq Sep 19 '14 at 07:44
Use this code:
requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
super.onCreate(savedInstanceState);
setContentView(R.layout.youractivityxmlname);

- 8,057
- 8
- 35
- 54

- 6,508
- 2
- 16
- 13
This code hides status bar.
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
to hide action bar write this line:-
requestWindowFeature(Window.FEATURE_NO_TITLE);
both lines can be written collectively to hide Action bar and status bar. all these lines must be written before setContentView
method call in onCreate
method.

- 1,366
- 2
- 22
- 43
In AndroidManifest.xml -> inside the activity which you want to use, add the following:
android:theme="@style/Theme.AppCompat.Light.NoActionBar"
//this is for hiding action bar
and in MainActivity.java -> inside onCreate() method, add the following :
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
//this is for hiding status bar

- 1,164
- 15
- 18
You can hide by using 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>
just call this in your manifest like this android:theme="@style/HiddenTitleTheme"

- 159
- 1
- 7
this is the best solution for me , just write this line in your 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>

- 759
- 5
- 6
You can hide status bar by setting it's color to transperant using xml. Add statusBarColor item to your activity theme:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:statusBarColor">@android:color/transparent</item>
</style>

- 991
- 3
- 13
- 31
-
pls add some explanation code only answers are bit confusing to others – Ram Ghadiyaram Jan 07 '19 at 20:53
As FLAG_FULLSCREEN is deprecated from android R. You can use below code to hide status bar.
@Suppress("DEPRECATION")
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
window.insetsController?.hide(WindowInsets.Type.statusBars())
} else {
window.setFlags(
WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN
)
}

- 627
- 8
- 11
-
1This is incorrect, they do not behave the same the inset just does like `getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN);` – Bitwise DEVS May 02 '21 at 11:01
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTheme(R.style.Theme_AppCompat_Light_NoActionBar);
requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN
, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity__splash_screen);
}

- 723
- 5
- 5
-
While this code may solve the question, [including an explanation](//meta.stackexchange.com/q/114762) of how and why this solves the problem would really help to improve the quality of your post, and probably result in more up-votes. Remember that you are answering the question for readers in the future, not just the person asking now. Please [edit] your answer to add explanations and give an indication of what limitations and assumptions apply. – Dharman Nov 10 '19 at 23:00
-
I did not have much idea of what exactly AppCompat is, been just using it. And these three lines did the job. – user3156040 Nov 11 '19 at 14:38
-
Pity is that Google's own documentation, as always, is incorrect how to achieve this. Maybe they should copy paste this code. – zeeshan Feb 15 '20 at 12:42
including android api 30, this works for me
if (Build.VERSION.SDK_INT < 16) {
window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN)
} else if (Build.VERSION.SDK_INT < 30) {
window.decorView?.systemUiVisibility = View.SYSTEM_UI_FLAG_FULLSCREEN
actionBar?.hide()
} else {
window.decorView.windowInsetsController?.hide(WindowInsets.Type.statusBars())
}

- 41
- 3
The clean and scalable approach to show and hide system UI I stick to, which works for different Android Api levels:
object SystemBarsCompat {
private val api: Api =
when {
Build.VERSION.SDK_INT >= Build.VERSION_CODES.S -> Api31()
Build.VERSION.SDK_INT == Build.VERSION_CODES.R -> Api30()
else -> Api()
}
fun hideSystemBars(window: Window, view: View, isImmersiveStickyMode: Boolean = false) =
api.hideSystemBars(window, view, isImmersiveStickyMode)
fun showSystemBars(window: Window, view: View) = api.showSystemBars(window, view)
fun areSystemBarsHidden(view: View): Boolean = api.areSystemBarsHidden(view)
@Suppress("DEPRECATION")
private open class Api {
open fun hideSystemBars(window: Window, view: View, isImmersiveStickyMode: Boolean = false) {
val flags = View.SYSTEM_UI_FLAG_FULLSCREEN or
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION or
View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
view.systemUiVisibility = if (isImmersiveStickyMode) {
flags or View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
} else {
flags or
View.SYSTEM_UI_FLAG_IMMERSIVE or
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
}
}
open fun showSystemBars(window: Window, view: View) {
view.systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
}
open fun areSystemBarsHidden(view: View) = view.systemUiVisibility and View.SYSTEM_UI_FLAG_HIDE_NAVIGATION != 0
}
@Suppress("DEPRECATION")
@RequiresApi(Build.VERSION_CODES.R)
private open class Api30 : Api() {
open val defaultSystemBarsBehavior = WindowInsetsController.BEHAVIOR_SHOW_BARS_BY_SWIPE
override fun hideSystemBars(window: Window, view: View, isImmersiveStickyMode: Boolean) {
window.setDecorFitsSystemWindows(false)
view.windowInsetsController?.let {
it.systemBarsBehavior =
if (isImmersiveStickyMode) WindowInsetsController.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
else defaultSystemBarsBehavior
it.hide(WindowInsets.Type.systemBars())
}
}
override fun showSystemBars(window: Window, view: View) {
window.setDecorFitsSystemWindows(false)
view.windowInsetsController?.show(WindowInsets.Type.systemBars())
}
override fun areSystemBarsHidden(view: View) = !view.rootWindowInsets.isVisible(WindowInsets.Type.navigationBars())
}
@RequiresApi(Build.VERSION_CODES.S)
private class Api31 : Api30() {
override val defaultSystemBarsBehavior = WindowInsetsController.BEHAVIOR_DEFAULT
}
}
And for example to hide system bars, it can be called from a Fragment
:
SystemBarsCompat.hideSystemBars(requireActivity().window, view)

- 27,326
- 8
- 128
- 149
Hide StatusBar
private void hideSystemBars() {
WindowCompat.setDecorFitsSystemWindows(getWindow(), false);
WindowInsetsControllerCompat windowInsetsController = ViewCompat.getWindowInsetsController(getWindow().getDecorView());
if (windowInsetsController == null) {
return;
}
// Configure the behavior of the hidden system bars
windowInsetsController.setSystemBarsBehavior(WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE);
// Hide both the status bar and the navigation bar
windowInsetsController.hide(WindowInsetsCompat.Type.systemBars());
}
show StatusBar
private void showSystemBars() {
WindowCompat.setDecorFitsSystemWindows(getWindow(), false);
WindowInsetsControllerCompat windowInsetsController = ViewCompat.getWindowInsetsController(getWindow().getDecorView());
if (windowInsetsController == null) {
return;
}
// Configure the behavior of the hidden system bars
windowInsetsController.setSystemBarsBehavior(WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE);
// Hide both the status bar and the navigation bar
windowInsetsController.show(WindowInsetsCompat.Type.systemBars());
}
for top camera cut with screen
<item name="android:windowLayoutInDisplayCutoutMode" tools:ignore="NewApi">shortEdges</item>

- 3,328
- 28
- 31
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

- 486
- 1
- 7
- 25
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

- 1
- 1

- 829
- 9
- 23
-
I think you are wrong, please take a look at the official info about hiding the status bar https://developer.android.com/training/system-ui/status.html – Jose Ricardo Citerio Alcala Jan 19 '17 at 20:59
-
Jose, I will check the information on given link and will update the answer if needed. This question/answer added an year ago when there was not an official solution for this scenario. May be in next release or versions google/android have added the API/method for the same. If they have provided the solution then its a delight. Thanks! – Jyo the Whiff Jan 20 '17 at 05:56
This solution work for me :)
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (Build.VERSION.SDK_INT >= 19) {
getWindow().setFlags(AccessibilityNodeInfoCompat.ACTION_NEXT_HTML_ELEMENT, AccessibilityNodeInfoCompat.ACTION_NEXT_HTML_ELEMENT);
getWindow().getDecorView().setSystemUiVisibility(3328);
}else{
requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
DataBindingUtil.setContentView(this, R.layout.activity_hse_video_details);

- 9,467
- 2
- 48
- 42
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// If the Android version is lower than Jellybean, use this call to hide
// the status bar.
if (Build.VERSION.SDK_INT < 16) {
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
} else {
View decorView = getWindow().getDecorView();
// Hide the status bar.
int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);
// Remember that you should never show the action bar if the
// status bar is hidden, so hide that too if necessary.
ActionBar actionBar = getActionBar();
actionBar.hide();
}
setContentView(R.layout.activity_main);
}
...
}

- 4,437
- 42
- 39
Used in Manifest
android:theme="@android:style/Theme.Holo.NoActionBar.Fullscreen"

- 8,057
- 8
- 35
- 54

- 490
- 2
- 6
- 17
-
1Probably depends on theme. In my case an exception occured: "java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity." – CoolMind Jul 18 '18 at 12:47
If you refer to the Google Documents you can use this method for android 4.1 and above, call this method before setContentView()
public void hideStatusBar() {
View view = getWindow().getDecorView();
int uiOption = View.SYSTEM_UI_FLAG_FULLSCREEN;
view.setSystemUiVisibility(uiOption);
ActionBar actionBar = getActionBar();
if (actionBar != null) {
actionBar.hide();
}
}

- 1,299
- 11
- 18
Add or Replace in Style.xml File
<item name="android:statusBarColor">@android:color/transparent</item>

- 668
- 8
- 9
We can hide status bar in Android 4.1 (API level 16) and higher by using setSystemUiVisibility()
window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_FULLSCREEN
As per google document we should never show the action bar if the status bar is hidden, so hide that too if necessary.
actionBar?.hide()

- 4,061
- 2
- 11
- 36

- 668
- 1
- 10
- 18
I know I'm very late to answer. I use the following piece of code in a relative java file for this purpose
Objects.requireNonNull(getSupportActionBar()).hide();

- 99
- 9
If you are using Compose then you can import
implementation "com.google.accompanist:accompanist-systemuicontroller:0.17.0"
then in your screen just write
val systemUiController = rememberSystemUiController()
systemUiController.isStatusBarVisible = false

- 1,068
- 12
- 21
Here How you can hide the status bar Use this function in your Helper Object Class and call it in your activity
fun hideStatusBar(window: Window, context: Context){
if (SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
window
.decorView
.systemUiVisibility =
View.SYSTEM_UI_FLAG_LAYOUT_STABLE or
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
window.statusBarColor = ContextCompat.getColor(context, R.color.transparent_bg_color)
} else {
window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN)
}
}
Call it in your Activity before set Content View.
hideStatusBar(window, this)
setContentView(R.layout.activity_detail)

- 63
- 3
Add the following code to themes.xml file. it will make the notification drawer semi-transparent.
<item name="android:windowTranslucentStatus">true</item>

- 91
- 2
- 10
-
1Your answer could be improved with additional supporting information. Please [edit] to add further details, such as citations or documentation, so that others can confirm that your answer is correct. You can find more information on how to write good answers [in the help center](/help/how-to-answer). – Community Oct 13 '22 at 03:21
-
Hello! Consider adding some comments or verbal explanations of what you're doing – Abhishek Dutt Oct 13 '22 at 03:22
Under res -> values ->styles.xml
Inside the style body tag paste
<item name="android:windowTranslucentStatus" tools:targetApi="kitkat">true</item>
-
it is throwing error - org.xml.sax.SAXParseException; lineNumber: 6; columnNumber: 79; The prefix "tools" for attribute "tools:targetApi" associated with an element type "item" is not bound. – Atul Raj Mar 01 '21 at 12:24
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
-
Hello! Consider adding some comments or verbal explanations of what you're doing. – George Feb 05 '19 at 15:17