关于软键盘的处理,理论上适应各种情况

如果有问题请联系我,但我不一定在

放关键代码

public class KeyboardDialog extends BaseAlertDialog implements ViewTreeObserver.OnGlobalLayoutListener {

private Object mObject;

public KeyboardDialog(Context context) {
   this(context, R.style.style_Dialog_Fullscreen);
   getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE);
   setCanceledOnTouchOutside(false);// 设置不能点击对话框外边取消当前对话框
}

protected KeyboardDialog(Context context, int themeResId) {
   super(context, themeResId);
   getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE);
   setCanceledOnTouchOutside(false);// 设置不能点击对话框外边取消当前对话框
}

@Override
protected void initData() {
   super.initData();
   convertView.getViewTreeObserver().addOnGlobalLayoutListener(this);
}

public void setObject(Object object) {
   mObject = object;
}

@Override
protected int getLayoutRes() {
   return R.layout.dlg_point;
}

@Override
public void onGlobalLayout() {
   int   heightPixels = getContext().getResources().getDisplayMetrics().heightPixels;
   int[] outLocation  = new int[2];
   convertView.getLocationOnScreen(outLocation);
   int y = outLocation[1] + convertView.getHeight();
   if (y != heightPixels) {
      KeyboardHelper.getIns().onKeyboardHeightChange(mObject, true, heightPixels - y);
   } else {
      KeyboardHelper.getIns().onKeyboardHeightChange(mObject, false, heightPixels - y);
   }
}

@Override
protected void initViews(View convertView) {
   getWindow().getAttributes().width = WindowManager.LayoutParams.MATCH_PARENT;
   getWindow().getAttributes().gravity = Gravity.BOTTOM;
}

@Override
public void dismiss() {
   super.dismiss();
   if (convertView != null) {
      convertView.getViewTreeObserver().removeGlobalOnLayoutListener(this);
   }
}
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 这类问题的大概思路都是寻找一条正确的路,当遇到岔口时,先尝试一条路,走不通就依次返回上一个岔路,要注意回到岔路时要...
    尴尴尬尬先生阅读 321评论 0 0
  • 父母都入睡了,客厅里只剩我一个人和嘈杂得电视机,不知为何,一股莫明得孤意涌上心头,明明电视机里传出各式各样得欢声...
    碎梦沉年阅读 126评论 0 0
  • 断肠曲 君心盈盈哪得真, 妾身茕茕立黄昏。 ...
    cc楚城阅读 323评论 0 3
  • 雨中独行 2009-12-3 21:30 这世道是怎么了,全世界的人都在偷菜!
    夕阳在山阅读 127评论 0 0