問題タブ [window-soft-input-mode]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - キーボードを開いたときにレイアウトが調整されない
こんにちは、activity.xml
ファイルに次のレイアウトがあります
次の行を追加しましたManifest.xml
しかし、Buttons align parent bottom
キーボードを開くと非表示になります。レイアウト自体のサイズは変更されません。
私は何が欠けていますか?
更新されたビュー
scrollview
ビューを更新してと の間に追加しtoolbar
ましたbuttons
。提案されているように、アクティビティにも追加getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
しました。機能しますが、完全ではありません。Buttons
でビューを重ねますscroll view
。添付画像です
android - 向きを変えるとキーボードが隠れる
似たような質問はすでに何度か出ていますが、あってはならない奇妙な規則性を発見しました。
そのレイアウトにはありActivity
ます。EditText
ユーザーがそのフィールドをクリックすると、ソフト入力が表示されます。フラグを にandroid:windowSoftInputMode="stateUnchanged"
追加するとAndroidManifest
、デバイスの向きが変わってもすべてが期待どおりに機能します - キーボードはその状態を保持します。しかし、Fragment
その上にActivity
あるEditText
場合Fragment
は機能しません。AndroidManifest
この場合、フラグオンはスキップされ(フラグはカバーのみActivity
)、向きの変更中にキーボードが消えると想定しています。
向きの変更時にキーボードの状態を保持するためのクリーンなソリューションが見つかりませんでした。手動でキーボードをオンonActivityCreated()
に表示する解決策を見ましたが、方向の変更に耐えられるオブジェクトの変数でキーボードの可視性状態を保持する必要があるため、好きではありません。私が見つけたのは、にある場合EditText
、Activity
ユーザーが触れず、フォーカスされていない場合でも、キーボードはその状態を保持することです。これはまったく予想外です。
で使用されているため、取り外しFragment
て頼ることはできません。しかし、これは が に直接接続されている場合にも発生することを確認しました。Activity
Fragments
ViewPager
Fragment
Activity
また、チェックしたすべてのアプリケーションで、その問題が何らかの形で解決されていることもわかりました。
フラグメントによる向きの変更時にキーボードの状態を保持するためのクリーンなソリューションはありますか?
編集:android:configChanges="orientation|screenSize"
オプションも嫌いです。