7

私はAndroidの初心者です。ユーザーが選択したときに、ダイアログを使用してデータを表示するアプリケーションを作成します。ダイアログは次のようになります。

https://docs.google.com/file/d/0B3NUAgD0tB0YOS16azFCWXdSVVE/edit

ただし、最後のEditTextをタップしてデータを入力すると、ダイアログが表示されます。最初の文字を入力すると、ダイアログが下にスクロールします。ダイアログはキーボードの後ろにとどまり、一部が完全に隠されています。

ソフトキーボードの上にダイアログ全体を表示する方法を教えてもらえますか?これは私がそれをどのように見せたいかです:

https://docs.google.com/file/d/0B3NUAgD0tB0YOFVQYUF0U0JvOEk/edit

ありがとう

クラーク

4

4 に答える 4

30

これを試しましたか?

私のために働いた:

http://developer.android.com/reference/android/view/Window.html#setSoftInputMode(int)

alertDialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
于 2012-08-30T04:28:58.540 に答える
8

ソフト入力モードを次のように機能させるには、ダイアログの幅と高さを手動で設定する必要がある場合があります。

    WindowManager.LayoutParams params = window.getAttributes();
    params.width = WindowManager.LayoutParams.MATCH_PARENT;
    params.height = WindowManager.LayoutParams.MATCH_PARENT;
    params.gravity = Gravity.CENTER;
    window.setAttributes(params); 
    window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE ); 
于 2015-12-25T15:36:45.623 に答える
2

Xmlファイル名style.xmlを作成します

<style name="FullHeightDialog" parent="android:style/Theme.Dialog">
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowSoftInputMode">stateUnchanged</item>
        <item name="android:windowBackground">@color/dialog_transparent</item>
</style>

次に実装します

これは私にとってもうまくいくことを願っています。

final Dialog dialog = new Dialog(this , R.style.FullHeightDialog);

マニフェストファイルも変更します

android:windowSoftInputMode="adjustResize|adjustPan" 
于 2012-09-13T13:43:07.270 に答える
1
 AlertDialog dialog = new AlertDialog.Builder(this).create();
 dialog.show();
 Window window = dialog.getWindow();
 window.clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
 window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
于 2018-07-02T17:34:18.883 に答える