2015-12-11 44 views
0

我使用以下代码在Android中输入Immersive sticky模式。[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); 

我要的是:我想要的状态栏和导航栏显示,当我触摸我的活动中心一部分,而不是从边缘滑动的。那可能吗?

回答

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); 
 
    }

相关问题