無効のフルスクリーンビューの編集のためのソフトキーボード入力いない。

StackOverflow https://stackoverflow.com/questions/4336762

質問

Androidデバイスを使用するソフトキーボードしたい予防にフルスクリーンは横置き設定時のキーボード編集ビュー(下記参照)から現れる時にはランドスケープモード(見たいだけのソフトキーボード自体、私の後ろう。

っているものと推察されるを採用することで実現できる setExtractViewShown(false) 方法 InputMethodService, かもしれませんが、同じアクセスできていないデフォルトのインスタンスは、このため、カスタム入力方法です。

Android fullscreen editing view

編集追加: による入力ではありません TextView (それ 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 ファイル。

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

editText.setImeOptions(EditorInfo.IME_FLAG_NO_EXTRACT_UI);

使用する android:imeOptions="flagNoFullscreen" その機能を達成するため。

また、複数のImeoptions Programaticalyを組み合わせたい場合は、|を使用できます。構文。

たとえば、ランドスケープのフルスクリーンの編集ビューを無効にし、キーボードの「OK」(Action_Done)で「次の」キーを置き換えるために、次を使用できます。

editText.setImeOptions(EditorInfo.IME_ACTION_DONE | EditorInfo.IME_FLAG_NO_EXTRACT_UI);

IMEを直接変更している場合は、オーバーライドして抽出されたビューを表示するのを防ぐことができます onUpdateExtractingVisibility:

@Override
public void onUpdateExtractingVisibility(EditorInfo ei) {
    ei.imeOptions |= EditorInfo.IME_FLAG_NO_EXTRACT_UI;
    super.onUpdateExtractingVisibility(ei);
}

いでちょっと遅いものの方にとても興味があり、ここでの私の解私風景 活動 を含有する EditText ではないを実施する上で必要となる自動補完機能この検索 活動, の重複キーボードのような問題をユーザーできなかった結果、 RecyclerView.ようになっているこ 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" 

あなたの編集で

私の解決策:

android:imeOptions="flagNoExtractUi|flagNoFullscreen"

ソフトキーボードを非表示にし、SearchViewからフォーカスを明確にするために電話をかけることができます。

public void hideKeyboard(View view) {
    InputMethodManager imm = (InputMethodManager) view.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}

super.clearFocus();
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top