键盘顶部的对话框
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();
}
另一答案
尝试此代码,您还需要手动设置宽度和高度
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 );
以上是关于键盘顶部的对话框的主要内容,如果未能解决你的问题,请参考以下文章