📌  相关文章
📜  使用示例在Android中隐藏ActionBar的不同方法

📅  最后修改于: 2021-05-10 15:40:40             🧑  作者: Mango

ActionBar是活动中的主要工具栏,可以显示活动标题,应用程序级别的导航功能和其他交互式项目。尽管操作栏是android应用程序的重要功能,但有时我们还是需要将其隐藏在整个应用程序,某些特定活动或某些特定工作中。本文介绍并演示了在Android应用程序中隐藏ActionBar的各种方法。隐藏操作栏的方法有很多种,如下所示:

隐藏ActionBar的不同方法

1.使用styles.xml整个应用程序隐藏ActionBar

如果要对整个应用程序(对所有“活动”和片段)隐藏操作栏,则可以使用此方法。只需转到res-> values- > styles.xml并将基础应用程序更改为“ Theme.AppCompat.Light.NoActionBar ”。
以下是此方法的代码段,并对styles.xml进行了更改:

XML
 
    
     


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(); 
        } 
    } 
}


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); 
    } 
}


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) {
        }
    }
}


XML
 
 
  
     
  


2.使用Java代码在任何特定活动中隐藏ActionBar

如果要隐藏特定活动的操作栏,只需在MainActivity中添加几行代码即可如下代码片段中提到的Java文件:

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(); 
        } 
    } 
}

3.在使用WindowManager进行用户交互时隐藏ActionBar

隐藏操作栏的另一种方法是通过设置WindowManager标志来通过Window Manager。当用户与您的应用程序交互时,这种方法使隐藏操作栏变得容易得多。您可以按照下面的代码中所述使用“ setFlags”函数。另外,您必须在Activity的setContentView()之前使用标志。这是隐藏操作栏的Java文件:

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); 
    } 
}

4.使用try-catch对任何特定活动隐藏ActionBar

如果您想使用try-catch块从特定活动中隐藏操作栏,只需在app> Java > package name> MainActivity中添加几行代码即可如下代码片段中提到的Java文件。在代码内部添加了注释,以更详细地了解代码。

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) {
        }
    }
}

实施上述方法

  • 创建一个Android应用并选择以上任何一种方法来隐藏ActionBar。
  • 定义活动。在这里,我们使用ConstraintLayout中的Text View在屏幕上简单地打印“ GeeksforGeeks”:
  • 导航到应用程序> res>布局> activity_main.xml,然后将以下代码添加到该文件中。以下是activity_main.xml文件的代码

XML格式

 
 
  
     
  

  • 按照上面选择的方法复制Java代码。
  • 编译并运行该应用程序。

输出: