BaseActivkty
public class BaseActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); /** * change style,hide status bar& navigation bar */ requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().getDecorView().setOnSystemUiVisibilityChangeListener( new View.OnSystemUiVisibilityChangeListener() { @Override public void onSystemUiVisibilityChange(int visibility) { if ((visibility & (View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION)) == 0) { onWindowFocusChanged(true); } } }); setContentView(R.layout.activity_main); int SDK_VER = Integer.valueOf(android.os.Build.VERSION.SDK_INT); if (SDK_VER == 15) getWindow().getDecorView().setSystemUiVisibility(4); else if (SDK_VER == 16 || SDK_VER == 17) getWindow().getDecorView().setSystemUiVisibility(8); } /** * change style,hide status bar& navigation bar */ @Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); if (!hasFocus) { // mBackDown = mHomeDown = false; } else if (hasFocus) { getWindow().getDecorView().setSystemUiVisibility( View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); } } // /** // * 拦截了返回按键逻辑 // */ // @Override // public boolean dispatchKeyEvent(KeyEvent event) { // if (event.getAction() == KeyEvent.ACTION_DOWN) { // switch (event.getKeyCode()) { // case KeyEvent.KEYCODE_BACK: // return true; // case KeyEvent.KEYCODE_HOME: // return false; // } // } else if (event.getAction() == KeyEvent.ACTION_UP) { // switch (event.getKeyCode()) { // case KeyEvent.KEYCODE_BACK: // if (!event.isCanceled()) { // } // return true; // case KeyEvent.KEYCODE_HOME: // if (!event.isCanceled()) { // } // return true; // } // } // return super.dispatchKeyEvent(event); // } /** * 点击返回按钮时调用的方法 * @param v */ public void exitOnClick(View v) { onBackPressed(); } }
沉浸式UI设计与实现
本文详细介绍了一种在Android应用中实现沉浸式用户体验的方法,通过修改窗口样式,隐藏状态栏和导航栏,调整UI可见性,使应用界面更加沉浸和专注。文章提供了具体的代码示例,展示了如何根据不同Android SDK版本进行适配。
1832

被折叠的 条评论
为什么被折叠?



