[android] 화면이 나타날 때 필드의 자동 초점 / 키보드 팝업을 제거하는 방법은 무엇입니까?
첫 번째 필드가 EditText 인 화면이 있고 시작시 초점이 맞춰지고 숫자 입력 유형도 팝업되어 매우 짜증납니다.
활동이 시작될 때 포커스를 얻지 못하거나 입력 패널이 올라가지 않는지 어떻게 확인할 수 있습니까?
답변
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editTextField.getWindowToken(), 0);
또는
응용 프로그램 태그에서 아래와 같이 매니페스트 파일의 활동 속성을 설정합니다.
android:windowSoftInputMode="stateHidden"
답변
애플리케이션 매니페스트 파일로 이동하여 자동 키보드 팝업을 비활성화하려는 활동에 대해이 줄을 작성합니다.
android:windowSoftInputMode="stateHidden"
답변
프로그래밍 방식으로 키보드를 표시하지 않지만 기본 위젯이 여전히 포커스 호출을 수신하려면 :
getWindow().setSoftInputMode(WindowManager.
LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
에 onResume()
답변
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
내부에 상기 방법 호출 에서 onCreate () .IT 방지 softKeyboard을 사용자가 선택하지 않으면 보여 글고을 하여
tapping or clicking.
또는 단순히 android:windowSoftInputMode="stateHidden"
활동 태그를Manifest.xml
답변
이것은 일반적으로 엉망입니다. 가장 먼저 시도하는 것은를 통해 다른 뷰로 초점을 훔치는 것입니다. 또한 focusable 및 focusableInTouchMode가 있어야합니다.
<TextView
...
android:focusable="true"
android:focusableInTouchMode="true">
<requestFocus/>
</TextView>
답변
다른 뷰로 초점을 맞 춥니 다. 기본적으로 첫 번째 포커스 가능한 뷰는 레이아웃이 확장 될 때 포커스를받습니다. XML을 통해 다른 뷰에 대한 포커스를 요청할 수 있습니다.
<TextView
android:layout_width="wrap_parent"
android:layout_height="wrap_content"
android:text="Some other view">
<requestFocus />
</TextView>
이것은 모든보기에서 작동합니다.
프로그래밍 방식으로 수행하려면 view.requestFocus()
.
답변
if(getWindow().getAttributes().softInputMode==WindowManager.LayoutParams.SOFT_INPUT_STATE_UNSPECIFIED)
{
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
}