Android 对话框片段下显示的软键盘
Android soft keyboard showing under a dialog fragment
我有一个对话框片段,它有一个列出多个视图的列表视图,在其中一个视图中有一个显示光标的编辑文本,但没有显示软键盘。
所以我在它的 onclick 上写了一个代码来显示键盘,如下所示,
etcomment.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
InputMethodManager imm = (InputMethodManager) activity
.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
}
});
现在键盘显示出来了,但是显示在键盘下方DialogFragment
我搜索了但没有得到答案,请帮助我!
你的 window 参数有问题好吧你应该这样做:..
Dialog dialog = new Dialog(DialogTestKeyboard.this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
lp.copyFrom(dialog.getWindow().getAttributes());
lp.width = 400;
lp.height = 800;
dialog.setContentView(yourLayoutHavingEditText);
dialog.setCancelable(false);
dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
dialog.show();
dialog.getWindow().setAttributes(lp);
dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
我有一个对话框片段,它有一个列出多个视图的列表视图,在其中一个视图中有一个显示光标的编辑文本,但没有显示软键盘。 所以我在它的 onclick 上写了一个代码来显示键盘,如下所示,
etcomment.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
InputMethodManager imm = (InputMethodManager) activity
.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
}
});
现在键盘显示出来了,但是显示在键盘下方DialogFragment
我搜索了但没有得到答案,请帮助我!
你的 window 参数有问题好吧你应该这样做:..
Dialog dialog = new Dialog(DialogTestKeyboard.this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
lp.copyFrom(dialog.getWindow().getAttributes());
lp.width = 400;
lp.height = 800;
dialog.setContentView(yourLayoutHavingEditText);
dialog.setCancelable(false);
dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
dialog.show();
dialog.getWindow().setAttributes(lp);
dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);