2016-07-08 3 views
1

시작시 상태 표시 줄을 숨길 수있었습니다. 그러나 내가 컨트롤을 만질 때마다 상태 표시 줄이 나타납니다. 이 문제를 해결하기 위해이 코드를 모든 터치에서 숨기려고했지만 먼저 숨겨진 코드가 표시됩니다. 이 루프는 영원히 계속됩니다.종료 할 때까지 상태 표시 줄을 숨기기

private View mContentView; 
private View mControlsView; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.activity_testgame); 

    mControlsView = findViewById(R.id.fullscreen_content_controls); 
    mContentView = findViewById(R.id.fullscreen_content); 

    mContentView.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      ActionBar actionBar = getSupportActionBar(); 
      if (actionBar != null) { 
       actionBar.hide(); 
      } 
      mControlsView.setVisibility(View.GONE); 
      mContentView.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); 
     } 
    }); 

나는 또한 android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 테마를 변경하려고했지만 컨트롤을 터치 할 때까지 숨 깁니다. 응용 프로그램을 종료 할 때까지 숨기려고합니다. 게임을 나가거나 게임을 종료 할 때까지 내가 사용한 게임 대부분을 숨길 수 있기 때문에 루트 권한 없이도 가능합니다.

답변

0

방금 ​​상태 표시 줄을 숨기는 this 페이지의 해결책을 찾았습니다.

먼저 import android.view.WindowManager;을 추가했습니다.

는 여기에 내 OnCreate 기능입니다 :

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_testgame); 

    //Hide status bar 
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); 

    //Hide action bar 
    ActionBar actionBar = getSupportActionBar(); 
    if (actionBar != null) { 
     actionBar.hide(); 
    } 

} 

그리고이 코드는

getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);// Show status bar 
다시 상태 표시 줄을 표시하는 데 도움이
관련 문제