39

AlertDialog約 10 個のコントロール (テキストと)があるボックスがありますTextView。これらのコントロールはScrollViewwithにありAlertDialog、プラスとマイナスの 2 つのボタンがあります。私が抱えている問題は、ソフト キーボードがポップアップすると、2 つのボタンがキーボードの後ろに隠れてしまうことです。

内部ビューまたはダイアログ ボックスで再描画機能のようなものを探していました。以下は、私が話していることのスクリーンショットです。

ここに画像の説明を入力

4

7 に答える 7

115

ダイアログが Dialog テーマの 1 つを使用するアクティビティである場合、アクティビティのパラメーターにadjustResizeフラグを設定することで、この動作に影響を与えることができます。windowSoftInputMode

私は使用しています:

android:windowSoftInputMode="adjustResize|stateHidden"

このフラグは通常のダイアログで引き続き使用できると思いますが、適用方法がわかりません。適切な親テーマを継承し、そのフラグも設定するカスタム テーマを使用して AlertDialog を作成する必要がある場合や、ContextThemeWrappers などを使用する必要がある場合があります。

または、 Window#setSoftInputModeを使用することもできます。

alertDialog.getWindow().setSoftInputMode(
    WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
于 2011-09-15T17:47:42.607 に答える
18

これを処理する最良の方法を見つけました。これはダイアログなので、コードは

alertDialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);

うまくいきません。

このコードの他に、このダイアログのダイアログ スタイルを設定する必要があります。スタイルは次のようになります。

<style name="DialogStyle" parent="@android:style/Theme.Black.NoTitleBar.Fullscreen">
    <item name="android:windowFullscreen">false</item>
    ......
    ......
</style>

parent属性はTheme.Black.NoTitleBar.Fullscreenアクティビティのスタイルに似ていることに注意してください。属性android:windowFullScreenは である必要がありますfalse

これで、ソフト キーボードが切り替わると、ダイアログのサイズが変更されます。

于 2012-11-01T12:21:16.870 に答える
2

ダイアログのサイズを変更する必要はないかもしれません

EditTextにandroid:imeOptions = "actionNext"を追加します(最後を除くすべて)(キーボードに[次へ]ボタンを追加します-次のEditTextに移動します)

最後のEditTextにandroid:imeOptions = "actionDone"を追加します([完了]ボタン-キーボードを非表示にします)

これで、ユーザーはボタンをクリックできるようになります

コードでテキストボックスを作成する場合は、EditText#setImeOptions関数を使用します

HTH

于 2011-04-11T14:11:39.690 に答える
0

キーボードをすぐに表示してサイズを調整するには:

editText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        if (hasFocus) {
            dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
        }
    }
});
于 2016-01-31T15:31:12.393 に答える
0

ポップアップにする必要がありますか?ポップアップは非常に大きく見えるので、別のアクティビティとして使用したい場合があります。一般に、ポップアップは、完全なデータ入力フォームではなく、簡単な質問またはいくつかのオプションを含むステートメントを提供するために使用されます。大きなポップアップの背後はあまり見えないため、基本的なコントロールは公開されていません。

于 2011-04-11T14:57:54.400 に答える