IT story

안드로이드 화면 키보드 자동 팝업

hot-time 2020. 6. 23. 07:21
반응형

안드로이드 화면 키보드 자동 팝업


내 앱 중 하나에 "열기 화면"(기본적으로 메뉴)이 있고 그 EditText뒤에 몇 가지 Button가 있습니다. 문제는 여러 사용자가 앱을 열 때을 터치하지 않고도 화상 키보드가 자동으로 팝업된다는보고입니다 EditText. 내가 알 수있는 한,이 모든 사용자는 HTC Hero를 사용하고 있습니다.

1.5의 버그입니까? 내가 할 수있는 일이 있습니까?


활동의 onCreate 메소드에서 다음 코드 행을 사용하여 사용자가 EditText를 클릭 할 때만 키보드가 팝업되도록 할 수 있습니다

this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 

<application android:icon="@drawable/icon" android:label="@string/app_name">
    <activity android:name=".Main"
              android:label="@string/app_name"
              android:windowSoftInputMode="stateHidden"
              >

이것은 안드로이드 3.0, 3.1, 3.2, 4.0에서 작동합니다-편집에 사용되는 편집기 (Eclipse 3.7)

소프트웨어 키보드를 숨기고 자하는 각 활동에 대해 애플리케이션의 매니페스트 XML 파일에 'windowSoftInputMode = "stateHidden' '을 배치하십시오. 이는 키보드가 자동으로 나타나지 않고 사용자가 컴퓨터를'클릭 '해야한다는 의미입니다. 텍스트 필드를 불러옵니다. 나는 거의 일 시간 동안 효과가있는 것을 찾아서 내가 공유 할 것이라고 생각했다.


이 코드는 모든 안드로이드 버전에서 작동합니다 :

@Override
 public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_login);

 //Automatic popping up keyboard on start Activity

     getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);

 or

 //avoid automatically appear android keyboard when activity start
     getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
 }

이것을 AndroidManifest.xml에 추가하십시오 .

android:windowSoftInputMode="stateHidden|adjustResize"

완벽하게 작동합니다. :)


액티비티의 onCreate () 메소드에서 이것을 사용할 수 있습니다

this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 

이 코드를 AndroidManifest.xml의 활동 태그에 붙여 넣습니다.

android:windowSoftInputMode="stateVisible"

활동 태그 아래 Android Mainfest.xml 의 단일 코드 줄을 추가 할 수 있습니다

 <activity
        android:name="com.sams.MainActivity"
        android:windowSoftInputMode="stateVisible" >
 </activity>

도움이 될 수 있습니다.


해당 버전의 Android에서보기가 팽창되면 포커스는 기본적으로 첫 번째 초점 제어로 설정되며 물리적 키보드가 없으면 화상 키보드가 나타납니다.

이 문제를 해결하려면 다른 곳에 초점을 명시 적으로 설정하십시오. 포커스가 EditText 이외의 것으로 설정되어 있으면 화상 키보드가 나타나지 않습니다.

에뮬레이터에서 Android 1.5를 실행하여이를 테스트 해 보셨습니까?


프로그래밍 방식으로 할 수 있습니다.

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editTextField.getWindowToken(), 0);

또는 설정 android:windowSoftInputMode="stateHidden"<activity tag내부AndroidManifest.xml


이것을 XML의 부모 레이아웃에 추가하십시오.

android:focusable="true" 
android:focusableInTouchMode="true"

액티비티가 시작될 때 포커스가 editText에 있지 않도록합니다.


InputMethodManager imm = (InputMethodManager)GetSystemService(Context.InputMethodService);
        imm.ShowSoftInput(_enterPin.FindFocus(), 0);

* 이것은 Android.xamarin 및 FindFocus () 용입니다. 위 코드 앞에 _enterPin.RequestFocus ()가 있으므로 _enterPin EditText 용 키보드를 표시하므로 현재 포커스가있는이 뷰를 기반으로하는 계층 구조의 뷰를 검색합니다.


Include this where the imports are on top:

import android.view.WindowManager;

Add this code on OnCreate part:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ....
    getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
}

참고URL : https://stackoverflow.com/questions/2496901/android-on-screen-keyboard-auto-popping-up

반응형