소프트 키보드를 사용하는 Android 기기에서는 가로 모드 일 때 전체 화면 키보드 편집보기 (아래 그림 참조)가 표시되지 않도록하고 싶습니다 (즉, 소프트 키보드 자체와 그 뒤에있는보기 만보고 싶습니다).
setExtractViewShown(false)
on 메소드를 사용 하여이 작업을 수행 할 수 있다고 가정 InputMethodService
하지만 기본 인스턴스에 액세스 할 수 없으며 사용자 정의 입력 메소드를 구현하고 싶지 않습니다.
추가 편집 : 입력이 진행되는보기가 TextView
( View
사용자 정의 InputConnection
구현이 아님) android:imeOptions="flagNoExtractUi"
이 아니므로 여기서 작동하지 않습니다.
답변
나는 마침내 내 자신의 질문에 대답했다.
입력 UI가 연결된 지점에서 추출 UI (즉, 전체 화면 편집 모드)를 비활성화 할 수 있습니다.
@Override
public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
outAttrs.imeOptions = EditorInfo.IME_FLAG_NO_EXTRACT_UI;
// etc.
}
답변
그렇게하려면 활동 xml로 이동 android:imeOptions="flagNoExtractUi"
하여 코드를 붙여 넣으 십시오. 그러나 어디에 붙여 넣어야합니까? 예제 활동 xml의 코드를보고 EditText를 살펴보십시오.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<EditText
android:imeOptions="flagNoExtractUi"
android:id="@+id/etTextInAct"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" >
<requestFocus />
</EditText>
</LinearLayout>
키보드에 대한 추가 사용자 정의 옵션을 원하면 http://developer.android.com/guide/topics/ui/controls/text.html을 참조 하십시오.
답변
부동산 추가 android:imeOptions="flagNoExtractUi"
각을 EditText
당신의 XML
파일.
답변
위의 답변은 동적으로 추가 된 EditTexts에 대한 솔루션을 찾는 데 도움이되었습니다.
editText.setImeOptions(EditorInfo.IME_FLAG_NO_EXTRACT_UI);
답변
android:imeOptions="flagNoFullscreen"
해당 기능을 달성하는 데 사용하십시오 .
답변
또한 여러 imeOptions를 프로그래밍 방식으로 결합하려면 | 통사론.
예를 들어 가로에서 전체 화면 편집보기를 비활성화하고 키보드에서 “Next”키를 “OK”(ACTION_DONE)로 바꾸려면 다음을 사용할 수 있습니다.
editText.setImeOptions(EditorInfo.IME_ACTION_DONE | EditorInfo.IME_FLAG_NO_EXTRACT_UI);
답변
IME를 직접 수정하는 경우 다음을 재정 의하여 IME가 ExtractedView를 표시하지 않도록 할 수 있습니다 onUpdateExtractingVisibility
.
@Override
public void onUpdateExtractingVisibility(EditorInfo ei) {
ei.imeOptions |= EditorInfo.IME_FLAG_NO_EXTRACT_UI;
super.onUpdateExtractingVisibility(ei);
}