Android中隐藏状态栏和标题栏的方法汇总(隐藏状态栏、标题栏的五种方法)

这篇文章主要介绍了Android中隐藏状态栏和标题栏的方法汇总(隐藏状态栏、标题栏的五种方法),非常不错,具有参考借鉴价值,需要的朋友可以参考下

  方法一:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class MainActivity extends Activity
{
   @Override
   protected void onCreate(Bundle savedInstanceState)
   {
     super .onCreate(savedInstanceState);
     // 隐藏标题栏
     requestWindowFeature(Window.FEATURE_NO_TITLE);
     // 隐藏状态栏
     getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
         WindowManager.LayoutParams.FLAG_FULLSCREEN);
     setContentView(R.layout.activity_main);
   }
}

方法二:

?
1
2
3
4
5
6
7
8
9
10
<!-- 同时隐藏状态栏和标题栏 -->
<activity
   android:name= "com.ysj.demo.MainActivity"
   android:theme= "@android:style/Theme.NoTitleBar.Fullscreen"
   android:label= "@string/app_name" >
   <intent-filter>
     <action android:name= "android.intent.action.MAIN" />
     <category android:name= "android.intent.category.LAUNCHER" />
   </intent-filter>
</activity>

方法三:

?
1
2
3
4
5
6
7
8
<!-- Application theme. -->
<style name= "AppTheme" parent= "AppBaseTheme" >
   <!-- All customizations that are NOT specific to a particular API-level can go here. -->
   <!-- 隐藏状态栏 -->
   <item name= "android:windowFullscreen" > true </item>
   <!-- 隐藏标题栏 -->
   <item name= "android:windowNoTitle" > true </item>
</style>

方法四:动态显示隐藏状态栏

?
1
2
3
4
5
6
7
8
//隐藏状态栏
  WindowManager.LayoutParams lp = context.getWindow().getAttributes();
  lp.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;
  context.getWindow().setAttributes(lp);
//显示状态栏
   WindowManager.LayoutParams attr = context.getWindow().getAttributes();
   attr.flags &= (~WindowManager.LayoutParams.FLAG_FULLSCREEN);
   context.getWindow().setAttributes(attr);

方法五:动态显示隐藏状态栏

      View类提供了setSystemUiVisibility和getSystemUiVisibility方法,这两个方法实现对状态栏的动态显示或隐藏的操作,以及获取状态栏当前可见性。

setSystemUiVisibility方法传入的实参分析:

   setSystemUiVisibility(int visibility)方法可传入的实参为:

    1. View.SYSTEM_UI_FLAG_VISIBLE:显示状态栏,

Activity不全屏显示(恢复到有状态的正常情况)。

    2. View.INVISIBLE:隐藏状态栏,同时Activity会伸展全屏显示。

    3. View.SYSTEM_UI_FLAG_FULLSCREEN:Activity全屏显示,且状态栏被隐藏覆盖掉。

    4. View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN:Activity全屏显示,但状态栏不会被隐藏覆盖,状态栏依然可见,Activity顶端布局部分会被状态遮住。

    5. View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION:效果同View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN

    6. View.SYSTEM_UI_LAYOUT_FLAGS:效果同View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN

    7. View.SYSTEM_UI_FLAG_HIDE_NAVIGATION:隐藏虚拟按键(导航栏)。有些手机会用虚拟按键来代替物理按键。

    8. View.SYSTEM_UI_FLAG_LOW_PROFILE:状态栏显示处于低能显示状态(low profile模式),状态栏上一些图标显示会被隐藏。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
package com.administrator.statubarapplication; 
import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.LinearLayout; 
import android.widget.TextView; 
public class MainActivity extends Activity implements View.OnClickListener { 
   @Override 
   protected void onCreate(Bundle savedInstanceState) { 
     super .onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     assignViews(); 
     setOnClicks(); 
  
   private void setOnClicks() { 
     mButton1.setOnClickListener( this ); 
     mButton2.setOnClickListener( this ); 
     mButton3.setOnClickListener( this ); 
     mButton4.setOnClickListener( this ); 
     mButton5.setOnClickListener( this ); 
     mButton6.setOnClickListener( this ); 
     mButton7.setOnClickListener( this ); 
  
   private LinearLayout mMain; 
   private TextView mTextview; 
   private Button mButton1; 
   private Button mButton2; 
   private Button mButton3; 
   private Button mButton4; 
   private Button mButton5; 
   private Button mButton6; 
   private Button mButton7; 
   private void assignViews() { 
     mMain = (LinearLayout) findViewById(R.id.main); 
     mTextview = (TextView) findViewById(R.id.textview); 
     mButton1 = (Button) findViewById(R.id.button1); 
     mButton2 = (Button) findViewById(R.id.button2); 
     mButton3 = (Button) findViewById(R.id.button3); 
     mButton4 = (Button) findViewById(R.id.button4); 
     mButton5 = (Button) findViewById(R.id.button5); 
     mButton6 = (Button) findViewById(R.id.button6); 
     mButton7 = (Button) findViewById(R.id.button7); 
  
   @Override 
   public void onClick(View v) { 
     switch (v.getId()) { 
       case R.id.button1: 
         //Activity全屏显示,且状态栏被隐藏覆盖掉 
         mMain.setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN); 
         mTextview.setText( "Activity全屏显示,且状态栏被隐藏覆盖掉\nView.SYSTEM_UI_FLAG_FULLSCREEN" ); 
         break
       case R.id.button2: 
         mMain.setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE); 
         mTextview.setText( "恢复到有状态的正常情况\nView.SYSTEM_UI_FLAG_VISIBLE" ); 
         break
       case R.id.button3: 
         mMain.setSystemUiVisibility(View.INVISIBLE); 
         mTextview.setText( "//隐藏状态栏,同时Activity会伸展全屏显示\nView.INVISIBLE" ); 
         break
       case R.id.button4: 
         mMain.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); 
         mTextview.setText( "Activity全屏显示,但状态栏不会被隐藏覆盖,状态栏依然可见,Activity顶端布局部分会被状态遮\nView"
             ".SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN \n View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION" ); 
         break
       case R.id.button5: 
         mMain.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); 
         mTextview.setText( "Activity全屏显示,状态栏透明\nView.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION" ); 
         break
       case R.id.button6: 
         mMain.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION); 
         mTextview.setText( "隐藏虚拟按键\nView.SYSTEM_UI_FLAG_HIDE_NAVIGATION" ); 
         break
       case R.id.button7: 
         mMain.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE); 
         mTextview.setText( "状态栏低能显示,有一些会被隐藏\nView.SYSTEM_UI_FLAG_LOW_PROFILE" ); 
         break
             default
         break
    
  
}

下面看下 隐藏标题栏和底部操作栏,可上下滑动显示代码

?
1
2
3
4
5
6
7
8
9
10
@Override
public void onWindowFocusChanged( boolean hasFocus)
{
super .onWindowFocusChanged(hasFocus);
if (hasFocus)
{
View decorView = that.getWindow().getDecorView();
decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY | View.SYSTEM_UI_FLAG_FULLSCREEN);
}
}
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值