Saturday, November 16, 2024
Google search engine
HomeLanguagesJavaDifferent Ways to Hide ActionBar in Android with Examples

Different Ways to Hide ActionBar in Android with Examples

ActionBar is a primary toolbar within the activity that may display the activity title, application-level navigation affordances, and other interactive items. Although Action Bar is an important feature for android applications, sometimes we have the need to hide it in either the entire app, some particular activity, or during some particular work. This article explains and demonstrates various ways to hide the ActionBar in an Android Application. There are various ways to hide Action Bar, demonstrated below:

Different ways to Hide ActionBar

1. Hide ActionBar from the entire App using styles.xml

If you want to hide Action Bar from the entire application (from all Activities and fragments), then you can use this method. Just go to res -> values -> styles.xml and change the base application to “Theme.AppCompat.Light.NoActionBar“.
Below is the code snippet for this method and changes are made to styles.xml

XML




<resources
    <!---Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"
  
        <!---Customize your theme here.-->
        <item name="colorPrimary">@color/colorPrimary</item
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item
        <item name="colorAccent">@color/colorAccent</item
    </style
</resources>


2. Hide ActionBar from any particular activity using Java code

If you want to hide Action Bar from particular activity just add few lines of code in the MainActivity.java file as mentioned in the code snippet below:

Java




import android.support.v7.app.AppCompatActivity; 
import android.view.View; 
import android.os.Bundle;
  
public class MainActivity extends AppCompatActivity { 
  
    @Override
    protected void onCreate(Bundle savedInstanceState) 
    
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.activity_main); 
  
        // Take instance of Action Bar 
        // using getSupportActionBar and 
        // if it is not Null 
        // then call hide function 
        if (getSupportActionBar() != null) { 
            getSupportActionBar().hide(); 
        
    
}


Kotlin




import android.support.v7.app.AppCompatActivity; 
import android.view.View; 
import android.os.Bundle;
  
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        // Take instance of Action Bar
        // using getSupportActionBar and
        // if it is not Null
        // then call hide function
        if (supportActionBar != null) {
            supportActionBar!!.hide()
        }
    }
}
// This code is contributed by Ujjwal KUmar Bhardwaj


3. Hide ActionBar while user interaction using WindowManager

Another way to hide Action Bar is through Window Manager by setting the WindowManager flag. This approach makes it a lot easier to hide the Action Bar when the user interacts with your application. You can use the “setFlags” function as described below in the code. Also, you have to use flags before setContentView() of Activity. Here is the java file to hide Action Bar: 

Java




import android.support.v7.app.AppCompatActivity; 
import android.view.View; 
import android.os.Bundle; 
  
public class MainActivity extends AppCompatActivity { 
  
    @Override
    protected void onCreate(Bundle savedInstanceState) 
    
        super.onCreate(savedInstanceState); 
  
        // set Windows Flags to Full Screen 
        // using setFlags function 
        getWindow().setFlags( 
            WindowManager.LayoutParams.FLAG_FULLSCREEN, 
            WindowManager.LayoutParams.FLAG_FULLSCREEN); 
        setContentView(R.layout.activity_main); 
    
}


Kotlin




import android.support.v7.app.AppCompatActivity; 
import android.view.View; 
import android.os.Bundle; 
  
  
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
  
        // set Windows Flags to Full Screen 
        // using setFlags function 
        window.setFlags(
            WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN
        )
        setContentView(R.layout.activity_main)
    }
}


4. Hide ActionBar from any particular activity using try-catch

If you want to hide Action Bar from particular activity using try-catch blocks just add few lines of code in app > java > package name > MainActivity.java file as mentioned in the code snippet below. Comments are added inside the code to understand the code in more detail. 

Java




import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
  
public class MainActivity extends AppCompatActivity {
  
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
  
        // try block to hide Action bar
        try {
            this.getSupportActionBar().hide();
        }
        // catch block to handle NullPointerException
        catch (NullPointerException e) {
        }
    }
}


Kotlin




import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
  
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        // try block to hide Action bar
        try {
            this.supportActionBar!!.hide()
        } // catch block to handle NullPointerException
        catch (e: NullPointerException) {
        }
    }
}
// This code is written by Ujjwal Kumar Bhardwaj


Implementation of the above approach

  • Create an Android app and choose any one of the above approaches to hide the ActionBar.
  • Define the activity. Here we simply print “Lazyroar” on the screen using a Text View in ConstraintLayout:
  • Navigate to the app > res > layout > activity_main.xml and add the below code to that file. Below is the code for the activity_main.xml file. 

XML




<?xml version="1.0" encoding="utf-8"?> 
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.neveropen.gfg.MainActivity"
  
    <TextView
        android:id="@+id/textView"
        android:layout_width="129dp"
        android:layout_height="55dp"
        android:text="Geeks For Geeks"
        tools:layout_editor_absoluteX="148dp"
        tools:layout_editor_absoluteY="306dp" /> 
  
</androidx.constraintlayout.widget.ConstraintLayout>


  • Copy the Java code as per the approach chosen from above.
  • Compile and run the app.

Output: 

Reference: Programming With Mobile Applications, 2nd Edition By Thomas J. Duffy

RELATED ARTICLES

Most Popular

Recent Comments