4

この正確な質問に対する回答を探していますが、ユーザーの観点からです。つまり、キーボードが横向きモードで表示されている場合でも、タブレットが通常のアプリ UI を表示する場合、携帯電話がこれを行わない原因は何ですか? 私はその「フルスクリーン」編集ボックスが嫌いで、アプリの通常の UI の残りの半分を見たいと思っています (ただし、表示される部分は少ないかもしれませんが、今日の巨大な電話では、利用可能な画面領域がまだ「十分」にあります)。

たとえば、設定を微調整できる構成ファイルがどこかにありますか(つまり、デバイスに画面が大きいと信じ込ませる、または同様の効果がありますか)?これにはおそらくルートが必要になることを十分に認識しており、それで問題ありません。明確にするために、すべての「問題のある」アプリを変更することは、実行可能でも望ましいことでもないことを知っています。

これは厳密にはプログラミングの問題ではないことは承知していますが、適切な検索結果が得られるようなフレーズをまとめるのは非常に困難です。記録のために、私は Nexus 4 を使用していますが、問題は基本的にデバイスとバージョンに依存しません。

4

2 に答える 2

6

ドキュメントによると:

IME_FLAG_NO_EXTRACT_UI : フルスクリーンの可能性のある入力メソッドの場合、多くの場合、ランドスケープ モードの場合、これにより、それらを小さくして、アプリケーションの一部を背後に表示させることができます。ユーザーが利用できるアプリケーションへのアクセスは制限される可能性がありますが、(ほとんどの場合) フルスクリーン IME のエクスペリエンスが不快にならないようにすることができます。このフラグが指定されている場合、IME はテキストを表示できるように設定されていない可能性があるため、これが必要ない状況でのみ使用する必要があることに注意してください。

スマートフォンの画面は小さいため、ユーザーが UI 全体を見て正しく操作することが難しくなる可能性があります。特に、横向きモードで画面に収まらない「背の高い」UI 要素がある場合はそうです。

更新:OSレベルの観点から見ると、ソリューションは(少なくともICS内に)ありますandroid/inputmethodservice/InputMethodService.java:2107

/**
 * Called when the fullscreen-mode extracting editor info has changed,
 * to determine whether the extracting (extract text and candidates) portion
 * of the UI should be shown.  The standard implementation hides or shows
 * the extract area depending on whether it makes sense for the
 * current editor.  In particular, a {@link InputType#TYPE_NULL}
 * input type or {@link EditorInfo#IME_FLAG_NO_EXTRACT_UI} flag will
 * turn off the extract area since there is no text to be shown.
 */
public void onUpdateExtractingVisibility(EditorInfo ei) {
    if (ei.inputType == InputType.TYPE_NULL ||
            (ei.imeOptions&EditorInfo.IME_FLAG_NO_EXTRACT_UI) != 0) {
        // No reason to show extract UI!
        setExtractViewShown(false);
        return;
    }

    setExtractViewShown(true);
}

この機能を削除するには、onUpdateExtractingVisibility(EditorInfo)おそらくsetExtractViewShown(false)を呼び出さずにオーバーライドして呼び出す必要がありますsuper

于 2013-01-05T00:31:18.460 に答える