【问题标题】:[Android]Show status bar and navigation bar programmatically while in Immersive sticky mode[Android]在沉浸式粘滞模式下以编程方式显示状态栏和导航栏
【发布时间】:2015-12-11 07:47:19
【问题描述】:

我使用以下代码在 Android 中进入沉浸式粘性模式。

mDecorView.setSystemUiVisibility(
        View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
        | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
        | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION // hide nav bar
        | View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar
        | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);

我想要的是:我希望在我触摸 Activity 的中心部分而不是从边缘滑动时显示状态栏和导航栏。这可能吗?

【问题讨论】:

    标签: java android


    【解决方案1】:

    如果您不想编写任何额外代码(只需调用一些方法),请从此处使用 SystemUIHelper:https://gist.github.com/chrisbanes/73de18faffca571f7292

    然后是这样的:

    ...
    
        SystemUiHelper uiHelper;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.[Your content view]);
            uiHelper = new SystemUiHelper(this, [Your flags/modes]);
          
            // Then set onTouchListener on youк root view
            // and when someone touch it you will receive an event about it 
            // and will be able to manage it and hide/show app's UI again
        }
    
        @Override
        public boolean onTouchEvent(MotionEvent event) {
            switch (event.getAction()){
                case MotionEvent.ACTION_UP:
                    if (uiHelper.isShowing()){
                        uiHelper.hide();
                    }else{
                        uiHelper.show();
                    }
                    break;
            }
          
            return super.onTouchEvent(event);
        }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-22
      • 2015-07-04
      • 1970-01-01
      • 2018-07-17
      • 1970-01-01
      相关资源
      最近更新 更多