有些玩意踩过一次坑还会再重复,人工智能也是回答错误的,足以说明安卓开发是真的操蛋,
还得靠自己以前写的方法工具类
imm.showSoftInput(finalPair1.second.edittext, InputMethodManager.SHOW_IMPLICIT);
``` 没有什么卵用.
pair.first.setOnShowListener(new DialogInterface.OnShowListener() {
@Override
public void onShow(DialogInterface dialog) {
finalPair1.first.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);//控制键盘显示的
finalPair1.first.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);//这样并没有全部顶起,但是编辑框看的更多了但是软键盘没自动弹出需要点两下
finalPair1.second.edittext.selectAll();
finalPair1.second.edittext.requestFocus();
/* InputMethodManager imm = (InputMethodManager) tableview.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(finalPair1.second.edittext, InputMethodManager.SHOW_IMPLICIT); // 显示软键盘*/
AppUtils.showKeyboard(tableview.getContext(),finalPair1.second.edittext);
// pair.first.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);//键盘不顶起,但是也不遮盖键盘
}
});
pair.first.show();
showKeyboard方法
if (view != null) {//https://stackoverflow.com/questions/5520085/android-show-softkeyboard-with-showsoftinput-is-not-working
InputMethodManager inputMethodManager = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE);
boolean isShowing = inputMethodManager.showSoftInput(view, InputMethodManager.SHOW_IMPLICIT);
if (!isShowing) {
InputMethodManager imm = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
activity.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
}
// inputMethodManager.showSoftInput(view,InputMethodManager.SHOW_IMPLICIT);
}
目前场景是一个底部弹出的
Dialog dialog = new BottomSheetDialog(context);
T dataBinding = DataBindingUtil.inflate(LayoutInflater.from(context), layout, viewGroup, false);
dialog.setContentView(dataBinding.getRoot());
dialog.setCanceledOnTouchOutside(true);
return new Pair<>(dialog, dataBinding);
所以```SOFT_INPUT_ADJUST_RESIZE```遮盖了编辑框一半, ```SOFT_INPUT_ADJUST_PAN```让编辑框完整显示,但是会遮盖住下面的部分. 和实际情况不一致,实际应该是整个底部顶起 .这可能和BottomSheetDialog的一些配置有关系
网友评论