261

ソフト キーボードを使用する Android デバイスで、ランドス ケープ モードのときにフルスクリーン キーボード編集ビュー (以下に示す) が表示されないようにしたい (つまり、ソフト キーボード自体とその背後にあるビューのみを表示したい)。

setExtractViewShown(false)これはメソッド onを使用して実現できるとInputMethodService思いますが、これのデフォルト インスタンスにアクセスできず、カスタム入力メソッドを実装したくありません。

Android フルスクリーン編集ビュー

追加するように編集:入力が行われるビューはTextView(ViewカスタムInputConnection実装では) でandroid:imeOptions="flagNoExtractUi"はないため、ここでは機能しません。

4

11 に答える 11

185

私はついに自分の質問に答えました:

抽出 UI (フルスクリーン編集モード) は、入力接続が接続された時点で無効にすることができます。

@Override
public InputConnection onCreateInputConnection(EditorInfo outAttrs) {

    outAttrs.imeOptions = EditorInfo.IME_FLAG_NO_EXTRACT_UI;

    // etc.
}
于 2011-01-18T16:47:21.633 に答える
123

これを行うには、アクティビティ 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 を参照してください

于 2012-11-01T15:03:39.543 に答える
67

android:imeOptions="flagNoExtractUi"ファイルのそれぞれEditTextにプロパティを追加しXMLます。

于 2013-11-03T21:46:22.670 に答える
54

上記の回答は、動的に追加された EditText の解決策を理解するのに役立ちました。

editText.setImeOptions(EditorInfo.IME_FLAG_NO_EXTRACT_UI);
于 2012-10-18T11:40:24.400 に答える
41

その機能を実現するために使用android:imeOptions="flagNoFullscreen"します。

于 2014-04-25T17:28:24.320 に答える
13

また、プログラムで複数の imeOptions を組み合わせたい場合は、 | を使用できます。構文。

たとえば、横向きのフルスクリーン編集ビューを無効にし、キーボードの「次へ」キーを「OK」(ACTION_DONE) に置き換えるには、次のようにします。

editText.setImeOptions(EditorInfo.IME_ACTION_DONE | EditorInfo.IME_FLAG_NO_EXTRACT_UI);
于 2016-03-08T09:15:49.547 に答える
9

IME を直接変更している場合は、オーバーライドすることで ExtractedView が表示されないようにすることができますonUpdateExtractingVisibility

@Override
public void onUpdateExtractingVisibility(EditorInfo ei) {
    ei.imeOptions |= EditorInfo.IME_FLAG_NO_EXTRACT_UI;
    super.onUpdateExtractingVisibility(ei);
}
于 2012-12-04T00:30:13.427 に答える