键盘顶部的对话框

时间:2017-12-20 06:02:42

标签: android dialog keyboard

我的对话框位于屏幕中央,有3个编辑文本和按钮。 当我专注于我的第一个edittext时,我希望整个对话框位于键盘顶部,以在对话框的底部显示我的按钮。

我已经尝试了几乎所有的答案..

var dialog = builder.create()

dialog.window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN)

return dialog

注意:这只是对话框,因此无需在清单中放置内容。?..

让我说我有这个对话框----> i47.tinypic.com/2vchnih.png

我希望我的对话框位于键盘顶部而不是像这样的东西----> i45.tinypic.com/352lym9.png

2 个答案:

答案 0 :(得分:0)

尝试此代码,您还需要手动设置宽度和高度

  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 );

答案 1 :(得分:0)

您需要一个全屏对话框。将对话框的主题设置为。

<style name="fullScreeDialog">
    <item name="android:windowFrame">@null</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
    <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
</style>

Xml布局。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
    android:id="@+id/footer"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:background="@color/blue_end"
    android:gravity="center"
    android:orientation="vertical"
    android:paddingBottom="30dp">

    <EditText
        android:id="@+id/et1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:padding="20dp"
        android:text="hint" />
</LinearLayout>

然后使用match_parent窗口参数构建一个对话框。

private void buildDialog() {
        Dialog dialog=new Dialog(this,R.style.fullScreeDialog);
        dialog.setContentView(R.layout.item_dialog);
        WindowManager.LayoutParams params = dialog.getWindow().getAttributes();
        params.width = WindowManager.LayoutParams.MATCH_PARENT;
        params.height = WindowManager.LayoutParams.MATCH_PARENT;
        dialog.getWindow().setAttributes(params);
        dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE );
        dialog.show();
    }

输出是 - Output