안드로이드 화면 키보드 자동 팝업
내 앱 중 하나에 "열기 화면"(기본적으로 메뉴)이 있고 그 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
'IT story' 카테고리의 다른 글
루비에서 해시 배열을 정렬하는 방법 (0) | 2020.06.23 |
---|---|
파이썬 로깅 : 시간 형식으로 밀리 초 사용 (0) | 2020.06.23 |
Laravel Eloquent 생성 및 업데이트 (0) | 2020.06.23 |
.net에서 Windows 버전 감지 (0) | 2020.06.23 |
파이썬 strptime () 및 시간대? (0) | 2020.06.23 |