因为项目需要, 要实现屏幕全屏,隐藏虚拟按键,即导航栏
SYSTEM_UI_FLAG_LOW_PROFILE 相当于隐藏导航栏
SYSTEM_UI_FLAG_VISIBLE导航栏显示
SYSTEM_UI_FLAG_HIDE_NAVIGATION 要求导航栏完全隐藏-->但这对部分硬件设备有效
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"><TextViewandroid:id="@+id/tv"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="单击屏幕,隐藏或显示导航栏"/></LinearLayout>
第一种方法:直接隐藏掉当前activity的导航栏
package com.example.setbutton; import android.os.Bundle; import android.app.Activity; import android.view.View; import android.view.Window; import android.view.WindowManager; public class MainActivity extends Activity { Window window; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // main = getLayoutInflater().from(this).inflate(R.layout.main, null); window = getWindow(); WindowManager.LayoutParams params = window.getAttributes(); params.systemUiVisibility = View.SYSTEM_UI_FLAG_LOW_PROFILE; window.setAttributes(params); setContentView(R.layout.main); } }
第二种方法:点击触发显示或隐藏
package com.ncsyeyy.YeyyHideNavigator;import android.app.Activity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.TextView;import android.widget.Toast;public class MyActivity extends Activity {private TextView tv;private View rootView;/*** Called when the activity is first created.*/@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);findView();setListener();}private void setListener() {tv.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {//得到当前根view的状态int i=rootView.getSystemUiVisibility();Log.e("setOnClickListener",i+"");//如果当前导航栏显示,就设置为隐藏if (i==View.SYSTEM_UI_FLAG_VISIBLE){//设置当前根视图的显示形式rootView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);}}});rootView.setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener() {@Overridepublic void onSystemUiVisibilityChange(int visibility) {Log.e("OnSystemUiVisibilityChangeListener",visibility+"");//根据当前view的显示状态进行不同的提示if (visibility==View.VISIBLE){Toast.makeText(MyActivity.this,"显示导航按钮",Toast.LENGTH_LONG).show();}else {Toast.makeText(MyActivity.this,"隐藏导航按钮",Toast.LENGTH_LONG).show();}}});}private void findView() {tv = (TextView) findViewById(R.id.tv);// 得到当前窗口的根viewrootView = getWindow().getDecorView();// 设置根view的导航栏为隐藏rootView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);}}
博客地址:/detail/csdnyuandaimaxuexi/9214587