가로 세로에서 소프트 키보드 입력에 대해 전체 화면 편집 보기를 비활성화하시겠습니까?
소프트 키보드를 사용하는 Android 장치에서는 가로 모드일 때 전체 화면 키보드 편집 보기(아래 표시)가 나타나지 않도록 하고 싶습니다(즉, 소프트 키보드 자체와 그 뒤에 있는 내 보기만 보고 싶습니다).
이것은 다음을 사용하여 달성할 수 있다고 가정합니다.setExtractViewShown(false)
메소드 온InputMethodService
, 그러나 이 인스턴스의 기본 인스턴스에 액세스할 수 없으므로 사용자 지정 입력 방법을 구현하고 싶지 않습니다.
Edited to add: 입력이 진행되는 뷰가 아닙니다.TextView
(그것은 a.View
관례에 따라InputConnection
실행), 그래서.android:imeOptions="flagNoExtractUi"
여기선 안 될 겁니다
저는 마침내 제 자신의 질문에 답했습니다.
입력 연결이 연결되는 지점에서 추출 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를 프로그래밍 방식으로 결합하려면 | 구문을 사용할 수 있습니다.
예를 들어 가로 보기에서 전체 화면 편집 보기를 사용 불가능으로 설정하고 키보드에서 "다음" 키를 "확인"(ACTION_DONE)으로 바꾸기 위해 다음을 사용할 수 있습니다.
editText.setImeOptions(EditorInfo.IME_ACTION_DONE | EditorInfo.IME_FLAG_NO_EXTRACT_UI);
내 솔루션:
android:imeOptions="flagNoExtractUi|flagNoFullscreen"
IME를 직접 수정하는 경우 다음을 재정의하여 Extracted View가 표시되지 않도록 할 수 있습니다.
@Override
public void onUpdateExtractingVisibility(EditorInfo ei) {
ei.imeOptions |= EditorInfo.IME_FLAG_NO_EXTRACT_UI;
super.onUpdateExtractingVisibility(ei);
}
조금 늦었다는 것을 알지만 여전히 관심이 있는 모든 사람들을 위해 다음과 같은 해결책이 있습니다. 제 경우에는 텍스트 편집이 포함된 풍경 작업이 맨 위에 있었고 이 검색 작업에 자동 완성 기능을 구현해야 했는데, 이로 인해 키보드가 겹쳐져 사용자가 리사이클러뷰의 결과를 볼 수 없는 문제가 발생했습니다.그래서 저는 이 EditText를 제 레이아웃에 넣게 되었습니다.
<EditText
android:layout_width="match_parent"
android:layout_height="?actionBarSize"
android:id="@+id/main_search_et"
android:imeOptions="actionSearch|flagNoExtractUi"
android:inputType="text" />
건배!
다음을 사용할 수 있습니다.
android:imeOptions="flagNoFullscreen"
당신의 편집본
전화를 걸어 소프트 키보드를 숨기고 검색 보기에서 포커스를 지울 수 있습니다.
public void hideKeyboard(View view) {
InputMethodManager imm = (InputMethodManager) view.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
super.clearFocus();
언급URL : https://stackoverflow.com/questions/4336762/disabling-the-fullscreen-editing-view-for-soft-keyboard-input-in-landscape
'programing' 카테고리의 다른 글
이전 달을 계산하는 MySQL 쿼리 (0) | 2023.10.14 |
---|---|
Oracle procedure에서 선택 결과를 변수에 저장하는 방법 (0) | 2023.10.14 |
최대 절전 모드 둘 다 복합 기본 키가 있는 경우 관련 없는 두 테이블에 가입 (0) | 2023.10.14 |
안드로이드:영상 보기에서 영상을 각도만큼 회전 (0) | 2023.10.14 |
git 저장소를 데이터베이스 백엔드로 사용 (0) | 2023.10.14 |