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

来源:互联网 发布:四川省教师网络培训 编辑:程序博客网 时间:2024/05/18 01:13
这篇文章主要介绍了Android中隐藏状态栏和标题栏的方法汇总(隐藏状态栏、标题栏的五种方法),非常不错,具有参考借鉴价值,需要的朋友可以参考下

  方法一:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class MainActivity extendsActivity
{
  @Override
  protectedvoid 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 extendsActivity implementsView.OnClickListener { 
  @Override 
  protectedvoid onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    assignViews(); 
    setOnClicks(); 
  
  privatevoid setOnClicks() { 
    mButton1.setOnClickListener(this); 
    mButton2.setOnClickListener(this); 
    mButton3.setOnClickListener(this); 
    mButton4.setOnClickListener(this); 
    mButton5.setOnClickListener(this); 
    mButton6.setOnClickListener(this); 
    mButton7.setOnClickListener(this); 
  
  privateLinearLayout mMain; 
  privateTextView mTextview; 
  privateButton mButton1; 
  privateButton mButton2; 
  privateButton mButton3; 
  privateButton mButton4; 
  privateButton mButton5; 
  privateButton mButton6; 
  privateButton mButton7; 
  privatevoid 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 
  publicvoid onClick(View v) { 
    switch(v.getId()) { 
      caseR.id.button1: 
        //Activity全屏显示,且状态栏被隐藏覆盖掉 
        mMain.setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN); 
        mTextview.setText("Activity全屏显示,且状态栏被隐藏覆盖掉\nView.SYSTEM_UI_FLAG_FULLSCREEN"); 
        break
      caseR.id.button2: 
        mMain.setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE); 
        mTextview.setText("恢复到有状态的正常情况\nView.SYSTEM_UI_FLAG_VISIBLE"); 
        break
      caseR.id.button3: 
        mMain.setSystemUiVisibility(View.INVISIBLE); 
        mTextview.setText("//隐藏状态栏,同时Activity会伸展全屏显示\nView.INVISIBLE"); 
        break
      caseR.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
      caseR.id.button5: 
        mMain.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); 
        mTextview.setText("Activity全屏显示,状态栏透明\nView.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION"); 
        break
      caseR.id.button6: 
        mMain.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION); 
        mTextview.setText("隐藏虚拟按键\nView.SYSTEM_UI_FLAG_HIDE_NAVIGATION"); 
        break
      caseR.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(booleanhasFocus)
{
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);
}
}
阅读全文
0 0
原创粉丝点击