2017-12-19 5 views
1
private void hideSystemUI() { 

View decorView = getWindow().getDecorView(); 

int uiOptions = 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 // hide nav bar 
| View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar 
| View.SYSTEM_UI_FLAG_IMMERSIVE; 

    decorView.setSystemUiVisibility(uiOptions); 
    } 

ともブロックするためのコードの下に使用される:私はステータスバーとホームナビゲーションバーをブロックする必要があります。私はそれを

@Override 

public void onWindowFocusChanged(boolean hasFocus) 
{ 

super.onWindowFocusChanged(hasFocus); 

    View decorView = getWindow().getDecorView(); 

    decorView.setOnSystemUiVisibilityChangeListener( 
     newView.OnSystemUiVisibilityChangeListener() { 

     @Override 

     public void onSystemUiVisibilityChange(int i) { 

      if (i == View.VISIBLE){ 
       hideSystemUI(); 
      } 
      else { 
       hideSystemUI(); 
      } 
     } 
    }); 

はのonCreateでhidesystemUI()コードを(書いた)とonResume()も、) decorView.setOnSystemUiVisibilityChangeListener(を含みます。だから私はそれをブロックする必要があります。一番上でスワイプすると、それは(まばたきのように)戻ってきます。しかし、私はそれをブロックする必要があります。一番上でスワイプすると表示されません。私を助けてください。

+0

これをチェックすると、https://stackoverflow.com/questions/29969086/how-to-disable-status-bar-click-and-pull-down-in-android – notTdar

答えて

0

点滅したくない場合は、隠しを遅らせることができます。たとえば、Handler.postDelayed()で2秒の遅延を与えることができます。

private void hideSystemUI() { 
    final int uiOptions = 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 // hide nav bar 
      | View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar 
      | View.SYSTEM_UI_FLAG_IMMERSIVE; 

    new Handler().postDelayed(new Runnable() { 
     @Override 
     public void run() { 
      getWindow().getDecorView().setSystemUiVisibility(uiOptions); 
     } 
    }, 2000); //2 seconds delay 
} 

あなたは常にメインスレッドでこれを呼び出している場合は、単純にメインスレッド上のハンドラを返すようにnew Handler()を呼び出すことができます。それ以外の場合はnew Handler(Looper.getMainLooper())に電話する必要があります。

+0

申し訳ありませんが、これは正確な解決策ではありません探しています。しかし、私はシステムのUIを永久にブロックできないことを理解しました。これはシステムアプリでのみ可能です。だから私はそれのために別の方法を見つけた - ありがとう。 –

+0

問題ありません!私はあなたがちょうどそれが点滅して好きではないと思った。あなたが解決策を見つけることをうれしい! :) – Siu

+0

お気に入りの連絡先から名前、携帯電話番号、写真を取得する方法をご存じですか? –

関連する問題