2015-08-31 92 views
2

我正在最近完成我的全屏項目,並通過Immersive mode實施。除了一部分,它工作正常,正確:如何在鍵盤彈出時保持全屏

隨着鍵盤彈出,隱藏狀態欄也會顯示出來。

我該如何擺脫它?當我點擊我的佈局中的edittext時,我想讓狀態欄保持隱藏狀態。

這裏是我的代碼:

int flag = View.SYSTEM_UI_FLAG_LOW_PROFILE 
        |View.SYSTEM_UI_FLAG_HIDE_NAVIGATION 
        |View.SYSTEM_UI_FLAG_LAYOUT_STABLE 
        |View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 
        |View.SYSTEM_UI_FLAG_FULLSCREEN 
        |View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION 
        |View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     mDecorView = activity.getWindow().getDecorView(); 
     mDecorView.setSystemUiVisibility(flag);  
     mDecorView.setOnSystemUiVisibilityChangeListener(
      new View.OnSystemUiVisibilityChangeListener() { 
      @Override 
      public void onSystemUiVisibilityChange(int visibility) { 
       if ((visibility & View.SYSTEM_UI_FLAG_HIDE_NAVIGATION) != 0) { 
        mDecorView.setSystemUiVisibility(flag); 
       } 
      } 
     }); 
    } 

    @Override 
    public void onWindowFocusChanged(boolean hasFocus) { 
     super.onWindowFocusChanged(hasFocus); 
     if ((visibility & View.SYSTEM_UI_FLAG_HIDE_NAVIGATION) != 0) { 
      mDecorView.setSystemUiVisibility(flag); 
     } 
    } 

它必須有一些步行約解決方案。我見過有些應用程序隱藏狀態欄,即使在彈出鍵盤時也是如此。

任何想法如何解決這個問題?

+0

我認爲,當鍵盤了,返回按鈕等上升到這樣你就可以關閉鍵盤,也狀態欄... – DavidBalas

+0

我認爲它是沉浸式模式的功能。但看看這篇文章,也許你可以得到一些有用的信息http://stackoverflow.com/questions/21164836/immersive-mode-navigation-becomes-sticky-after-volume-press-or-minimise-restore/21278040#21278040 – MAOL

回答

0

您必須使用<ScrollView>作爲主佈局。例如:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
    .... 
</ScrollView> 

或使用該代碼在AndroidManifest.xml:

<activity 
    android:windowSoftInputMode="adjustNothing"> 
</activity>