2

私の理解では、ソフト キーボードは実際には、他のすべてのアプリケーション ウィンドウの基礎となるダイアログ ウィンドウです。アプリケーションがキーボードを要求すると、アプリの ViewRoot (およびウィンドウ) が画面の上部にサイズ変更され、キーボードが表示されるようになります。

ここまでは順調ですね...

私が理解していないのは、キーのプレビュー (押されたキーを拡大して表示する青っぽいビュー - 実際には TextView です)がアプリのウィンドウの上にどのように表示されるかです。結局のところ、キーボードのウィンドウはアプリのウィンドウの下にあるので、そのウィンドウで作成されたビューはアプリのウィンドウの後ろにしか存在しないと思います..このプレビュー TextView には特別な特徴がありますか? ビューの z オーダーは、作成された順序に従って決定されますか? (つまり、2 つのビューが同じ面に描画されていても、それらの z オーダーは異なるのですか?)

4

1 に答える 1

0

結局のところ、キーボードのレイアウトは実際には上にあります。そのウィンドウはアプリケーションが起動する前に作成された可能性がありますが、それはダイアログ ウィンドウであり、ウィンドウ階層の最上位に追加されることを意味します。ここでの唯一の問題は、キーボードのウィンドウが画面全体のサイズであることです (キーボードは下部に描画され、その上に黒い背景が表示されます)。そのウィンドウは一番上のウィンドウなので、キーボードの黒い背景がそれをアクティブにしたアプリケーションの上に来ると予想されます...

解決策: キーボードのウィンドウには半透明のプロパティがあります! 結局のところ、この事実のために黒い背景は描画されません。つまり、アプリケーションが表示していたものは何でも見ることができます。それを理解するのにかなり時間がかかりました...

于 2012-06-27T06:06:03.510 に答える