2017-09-21 2 views
0

내 스마트 폰에 내 APP에 영구히 숨기고 싶은 소프트 키가 있습니다. 아래 기능을 사용하여 소프트 키를 숨 깁니다.활동을 변경하는 동안 android- hide softkey (영구적으로)

public void setFullscreen(boolean fullscreen) { 
     WindowManager.LayoutParams attrs = getWindow().getAttributes(); 
     if (fullscreen) { 
      attrs.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN; 
      attrs.flags |= WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN; 
      attrs.flags |= WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS; 
     } 
     else { 
      attrs.flags &= ~WindowManager.LayoutParams.FLAG_FULLSCREEN; 
      attrs.flags &= ~WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN; 
      attrs.flags &= ~WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS; 
     } 
     getWindow().setAttributes(attrs); 
     View v = this.getWindow().getDecorView(); 
     v.setSystemUiVisibility(View.GONE); 
    } 

난에서 onCreate의 모든 activitys에서 그 함수 전에 빈에서 onCreate (번들 savedInstanceState) 보호 그래서 같은 을 ... 전화

@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
    setFullscreen(true); 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.myLayout); 
} 

문제 : 내가 활동을 변경하고 및 소프트 키가 표시 및 다시 숨어 라. 내가 어떻게 그들을 막지 못하게합니까?

나는 또한 당신이 ... 큰 감사를 나를 도울 수 있기를 바랍니다 모든 activitys

 <activity 
     android:name=".myActivity" 
     android:windowSoftInputMode="stateHidden" /> 

에 대한 매니페스트에 "stateHidden"를 사용! :)

+0

작동 나던이 링크 https://stackoverflow.com/questions/18977187/how-to-hide-soft-keyboard-when-activity-starts – Ankita

+0

@Ankita를 참조하십시오 .. :( – MarieSophie90

+0

MarieSophie90 사용 @ WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE 소프트 키를 사용하지 않으려면 –

답변

0

마침내! 여기에 하나의 해결책이 있습니다. 감사!

private void hideSystemUI() { 
    getWindow().getDecorView().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_STICKY); 
} 



public void setFullscreen(boolean fullscreen) { 

    WindowManager.LayoutParams attrs = getWindow().getAttributes(); 
    if (fullscreen) { 
     attrs.flags |= WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE; 
     attrs.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN; 
     attrs.flags |= WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN; 
     attrs.flags |= WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS; 
     attrs.flags |= WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN; 

    } 
    else { 
     attrs.flags &= ~WindowManager.LayoutParams.FLAG_FULLSCREEN; 
     attrs.flags &= ~WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN; 
     attrs.flags &= ~WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS; 
    } 
    getWindow().setAttributes(attrs); 
    hideSystemUI(); 
}