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代码。
- 编译并运行该应用程序。