键盘顶部的对话框

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了键盘顶部的对话框相关的知识,希望对你有一定的参考价值。

我的对话框位于屏幕中央,有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

答案

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

<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

另一答案

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

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

以上是关于键盘顶部的对话框的主要内容,如果未能解决你的问题,请参考以下文章

键盘顶部的对话框

打开软键盘时在顶部隐藏半个对话框

软输入键盘隐藏编辑文本

Android 键盘 长按关机显示对话框时,按键盘任意键屏幕顶部状态栏会显示出来其他阴影

检测后退按钮但不关闭对话框片段

出现键盘后调整活动大小