前言:
当我们在Android中以默认地形式创建一个Activity时,我们可以看到,其生成的界面如下:
由于状态栏和标题栏在整个界面中占据了不少的位置,而我们又没有状态栏和标题栏的这样的需求,所以
此时,我们让其进行一个全屏显示,关于全屏显示,一种是在xml中进行配置,一种是在代码中进行,如下:
方法一:xml配置:
在res/values/style.xml中自定义一个Theme,如下:
<!-- 这里继承的parent Theme为Theme.AppCompat.Light.NoActionBar, 所以在这一步,标题栏就没有了,那么接下来,我们只需要将状态栏隐藏掉即可,如下: <item name="android:windowFullscreen">true</item> --> <style name="ThemeNoTitleFullScreen" parent="Theme.AppCompat.Light.NoActionBar"> <item name="android:windowFullscreen">true</item> </style>然后AndroidManifest.xml的<application>节点的theme属性中引用我们自定义的style:
<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/ThemeNoTitleFullScreen"> ... </application>
方法二:代码配置:
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); /** * 全屏显示 */ /*** * 这是隐藏标题栏 */ getSupportActionBar().hide(); /*** * 添加全屏显示的标识位,默认情况下,添加全屏标识位并不会将标题栏隐藏掉, * 所以在添加全屏标识位之前,我们已提前将标题栏予以隐藏 */ getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); /** * 取消全屏显示(注意:下面这一部分已注释掉了,看代码时,注意看) */ /** * 这是显示标题栏 * */ //getSupportActionBar().show(); /** * 这是清除全屏显示标识位 */ //getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.activity_main); } }
运行结果如下:
注:
从测试的结果来看,默认地情况下,添加全屏标识位,并不会将标题栏隐藏掉,只是将状态栏给隐藏了,
所以在设置全屏之前,我们应提前手动将标题栏予以隐藏掉;在这里我的Activity为AppCompatActivity类,并
不是Activity这个类,所以在处理标题栏问题时会和普通的Activity有些区别,具体可参考标题栏的隐藏可参考:
源码:全屏显示参考示例