가로로 소프트 키보드 입력을위한 전체 화면 편집보기를 비활성화 하시겠습니까? 키보드를 사용하는 Android 기기에서는

소프트 키보드를 사용하는 Android 기기에서는 가로 모드 일 때 전체 화면 키보드 편집보기 (아래 그림 참조)가 표시되지 않도록하고 싶습니다 (즉, 소프트 키보드 자체와 그 뒤에있는보기 만보고 싶습니다).

setExtractViewShown(false)on 메소드를 사용 하여이 작업을 수행 할 수 있다고 가정 InputMethodService하지만 기본 인스턴스에 액세스 할 수 없으며 사용자 정의 입력 메소드를 구현하고 싶지 않습니다.

Android 전체 화면 편집보기

추가 편집 : 입력이 진행되는보기가 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);
}