我们在Android开发过程中,在创建APP界面时都会存在默认的样式,大多数时候我们的APP页面都是不需要标题栏的,例如下面的这个页面存在的标题栏就显得非常丑陋。

总体来说,Android隐藏标题栏分两种方式:onCreate中使用代码隐藏 和 AndroidMainfest 定义Activity主题隐藏。
Activity继承自Activity时
在setContentView方法前加入以下代码:
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- setContentView(R.layout.activity_main);
- //隐藏标题栏
- requestWindowFeature(Window.FEATURE_NO_TITLE);
-
- System.out.println("MainActivity:onCreate()方法执行了,主界面被创建了");
-
- }
Activity继承自AppCompatActivity时,
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- //隐藏标题栏
- Objects.requireNonNull(getSupportActionBar()).hide();
-
- setContentView(R.layout.activity_main);
-
- System.out.println("MainActivity:onCreate()方法执行了,主界面被创建了");
-
- }
在res--->values--->styles--->中加入以下代码:
<style name="MyStyle" parent="Theme.AppCompat.Light.NoActionBar"/>
然后在需要隐藏标题栏的activity标签声明中,加入以下代码即可 android:theme="@style/MyStyle"
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:app="http://schemas.android.com/apk/res-auto"
- xmlns:tools="http://schemas.android.com/tools"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:background="@color/fullwhite"
- android:orientation="vertical"
- //引用我们自定义的Style
- android:theme="@style/MyStyle"
- tools:context=".MainActivity"
- tools:visibility="visible">
- public class MainActivity extends AppCompatActivity {
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- //隐藏标题栏
- Objects.requireNonNull(getSupportActionBar()).hide();
-
- setContentView(R.layout.activity_main);
-
- //设置状态栏全透明
- setStatusBarFullTransparent();
- System.out.println("MainActivity:onCreate()方法执行了,主界面被创建了");
-
- }
-
-
- /**
- * 全透状态栏
- */
- protected void setStatusBarFullTransparent() {
- if (Build.VERSION.SDK_INT >= 21) {//21表示5.0
- Window window = getWindow();
- window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
- window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
- | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
- window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
- window.setStatusBarColor(Color.TRANSPARENT);
- getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
- } else if (Build.VERSION.SDK_INT >= 19) {//19表示4.4
- getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
- //虚拟键盘也透明
- getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
- }
- }
- }
