6

私の目標は、Facebookメッセンジャーのようなほとんどのメッセージングアプリ、Viber、添付シートを表示するときに何ができるかを達成することです。ソフトキーボードが表示されていて、ユーザーが何かを添付したい場合、キーボードは隠されており、添付ファイルシートがその場所に表示されます。Androidのソフトキーボードが表示されているか非表示になっているときのレイアウトを調整する

この作業を行うには、ルートビューのサイズが変更されたときにレイアウトの変更が行われる必要があります。それ以外の場合は、キーボードの表示/非表示の直前に私のレイアウト変更が適用されるグラフィックグリッチが発生します。

キーボードを隠している瞬間にレイアウトを変更することができれば、それを正しく行うことができます。私はonGlobalLayoutListenerを使用しようとしましたが、望ましい結果はありませんでした。

enter image description here

答えて

0

あなたのレイアウトが表示されると変更に作用するキーボード(DIS)に起因して変化しているかどうかを確認するのに最適な場所は、内部のルートレイアウトのonMeasure()です。

さらに詳しくは、ルートレイアウトとして使用されるカスタムのLinearLayoutを作成しました。 onMeasureとI calculateが現在のキーボードの高さを上書きしました。キーボードの高さ、および添付ファイルのグリッドを表示するかどうかによって、添付ファイルのグリッドの表示が変更されます。グリッドの高さをキーボードと同じに設定することもできます。

グリッドが常にキーボードの下にあり、テキストビューが同じ垂直の場所にあるような結果が得られます。

0

あなたの活動のマニフェストにこの行を追加します。

<activity 
     android:name="com.your.Activity" 
     android:windowSoftInputMode="stateHidden|adjustPan" /> 
+0

これは役に立ちません。私は**キーボードがレイアウトを変えたいと思っていますが、隠されてしまったときには、以前の位置にレイアウトを保持して、添付ファイルのビューが表示されるようにしたいと考えています。私はこれらのアプリケーションがどのようにこの動作をどのようにするのか把握できません。 – Petrakeas

+0

これを試してください:windowSoftInputMode = "stateHidden | adjustPan | adjustNothing" –

0

このコードを使用すると便利です。

android:windowSoftInputMode="adjustNothing" 
+0

キーボードが表示されたときにレイアウトを変更したいです。私は、キーボードが外されたときにキーボードを添付ファイルのビューに置き換えたいと思っています。 – Petrakeas

関連する問題