我的对话框位于屏幕中央,有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
答案 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();
}