2015-08-31 3 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> 
Смежные вопросы