1.软键盘弹出时不会改变布局(覆盖页面的效果)

android:windowSoftInputMode="adjustPan"
2、软键盘弹出时不会覆盖popuwindow
setSoftInputMode(PopupWindow.INPUT_METHOD_NEEDED);
setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
3.popuwindow显示在页面底部,弹出时被软键盘顶
myInput.showAtLocation(findViewById(android.R.id.content),Gravity.BOTTOM,0,0);



4.源码
 4.1popupwindow的布局(自定义)
 public class MyInput extends PopupWindow {
  private Context context; private View view;
   public MyInput(Context context){
this.context=context;
init();
   }public void init(){
   LayoutInflater inflater=LayoutInflater.from(context);
view =inflater.inflate(R.layout.myinput,null);
this.setWidth(getScreenSize()[0]);
this.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);
setBackgroundDrawable(new ColorDrawable(0x00000000));
setOutsideTouchable(true);
setFocusable(true);
setSoftInputMode(PopupWindow.INPUT_METHOD_NEEDED);
setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
setContentView(view);
}
@Override
public void showAsDropDown(View anchor) {
// TODO Auto-generated method stub
super.showAsDropDown(anchor);
showPopuWindow();
}
@Override
public void showAsDropDown(View anchor, int xoff, int yoff) {
// TODO Auto-generated method stub
super.showAsDropDown(anchor, xoff, yoff);
showPopuWindow();
}
@Override
public void showAsDropDown(View anchor, int xoff, int yoff, int gravity) {
// TODO Auto-generated method stub
super.showAsDropDown(anchor, xoff, yoff, gravity);
showPopuWindow();
}
@Override
public void showAtLocation(View parent, int gravity, int x, int y) {
// TODO Auto-generated method stub
super.showAtLocation(parent, gravity, x, y);
showPopuWindow();
}
private void showPopuWindow(){
setWindowBackgroundAlpha(0.8f);
if (mShowingListener!=null) {
mShowingListener.onShowing();
}
}
@Override
public void setOnDismissListener(OnDismissListener onDismissListener) {
setWindowBackgroundAlpha(1f);
super.setOnDismissListener(onDismissListener);
}
/**
* 控制窗口背景的不透明度 *
*/
private void setWindowBackgroundAlpha(float alpha) {
Window window = ((Activity) context).getWindow();
WindowManager.LayoutParams layoutParams = window.getAttributes();
layoutParams.alpha = alpha;
window.setAttributes(layoutParams);
}
public interface ShowingListener {
public void onShowing();
}
private MyInput.ShowingListener mShowingListener;
public void setShowingListener(MyInput.ShowingListener showingListener) {
this.mShowingListener = showingListener;
}
/*
* 获取屏幕的宽高
*/
public int[] getScreenSize(){
int[] size=new int[2];
DisplayMetrics dm=new DisplayMetrics();
WindowManager wm=(WindowManager)context.getSystemService(Context.WINDOW_SERVICE);
wm.getDefaultDisplay().getMetrics(dm);
size[0]=dm.widthPixels;
size[1]=dm.heightPixels;
return size;
}
}

    

4.2activity里面的动态写popupwindow
shipin_pinglun.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//dibu.setVisibility(dibu.GONE);
        if (myInput==null){
myInput=new MyInput(SurfaceViewActivity.this);

myInput.setShowingListener(new MyInput.ShowingListener() {
@Override
public void onShowing() {
}
});
myInput.setOnDismissListener(new PopupWindow.OnDismissListener() {
@Override
public void onDismiss() {
WindowManager.LayoutParams lp=getWindow().getAttributes();
lp.alpha = 1f;
getWindow().setAttributes(lp);
dibu.setVisibility(dibu.VISIBLE);
}
});
}
myInput.showAtLocation(findViewById(android.R.id.content),Gravity.BOTTOM,0,0);
}
});


popupwindow与软键盘的问题的更多相关文章

  1. 如何利用PopupWindow实现弹出菜单并解决焦点获取以及与软键盘冲突问题

    如何利用PopupWindow实现弹出菜单并解决焦点获取以及与软键盘冲突问题 如何利用PopupWindow实现弹出菜单并解决焦点获取以及与软键盘冲突问题 在android中有时候可能要实现一个底部弹 ...

  2. popupwindow中EditText获取焦点后自动弹出软键盘

    关于popupwindow中EditText获取焦点后自动弹出软键盘的问题,玩过手机qq或空间的童鞋应该知道,再点击评论时会弹出一个编辑框,并且伴随软键盘一起弹出是不是很方便啊,下面我们就来讲一下实现 ...

  3. Android PopupWindow中EditText获取焦点自动弹出软键盘

    公司的项目中要求在点击搜索的时候弹出一个搜索框,搜索框中有一个EditText,用于数据搜索关键字,要求在弹出PopupWindow的时候自动弹出软键盘,原以为只要写上着两行代码可以搞的问题: Inp ...

  4. (转载)PopuWindow和软键盘共存时的设置

    PopuWindow和软键盘共存时的设置 收藏 artshell 发表于 2年前 阅读 1499 收藏 10 点赞 2 评论 0 腾讯云上实验室 1小时搭建人工智能应用 让技术更容易入门>> ...

  5. Android中点击隐藏软键盘最佳方法——Android开发之路4

    Android中点击隐藏软键盘最佳方法 实现功能:点击EditText,软键盘出现并且不会隐藏,点击或者触摸EditText以外的其他任何区域,软键盘被隐藏: 1.重写dispatchTouchEve ...

  6. Android之弹出/隐藏系统软键盘

    Android弹出/隐藏系统软键盘的代码如下: InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT ...

  7. EditText获取和失去焦点,软键盘的关闭,和软键盘的显示和隐藏的监听

    软键盘显示和隐藏的监听: 注: mReplayRelativeLayout是EditText的父布局 //监听软键盘是否显示或隐藏 mReplayRelativeLayout.getViewTreeO ...

  8. Android -- 软键盘

    1. 应用启动后,自动打开软键盘 InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD ...

  9. form表单提交和ajax表单提交,关于移动端如何通过软键盘上的【搜索】和【前进】进行提交操作

    [文章来源]由于自己对于form研究甚少,所以一直用的都是AJAX进行提交,这次后台提出要用form提交,顺便深入研究一下:之前在做表单的时候,发现input可以通过设置不同的type属性,调用不同的 ...

随机推荐

  1. Merge compare columns when null

    Key words: merge compare columns when we contact merge sql in ETL, When we update some columns we sh ...

  2. 【软件】图文解释XCode常用快捷键的使用

    一.关于运行调试 1.运行,停止,都在工具栏的Product里. Command + R  运行. Command + .  停止 2.F6单步调试.F7跳入,F8继续, 和Eclipse,VS类似 ...

  3. 从BUG工具redmine上获取数据后借助python模块pycha 画出BUG分析类报表

    整体代码比较冗长,但是很好读.写的方法全是按照BUG分类去写的.所以写死了,凑合看吧,画出饼图,树状图和生成对应的数据excel,希望大家举一反三能帮助自己分析BUG #__author__ = 'x ...

  4. 页面分享代码share

    在开发一个页面的时候常常会有这么一个小功能,就是分享该页面中的信息. 常见的分享代码有百度分享,JiaThis分享插件,bshare分享插件等,我主要分享一下自定义分享代码,如下: function ...

  5. UVA 11983 Weird Advertisement --线段树求矩形问题

    题意:给出n个矩形,求矩形中被覆盖K次以上的面积的和. 解法:整体与求矩形面积并差不多,不过在更新pushup改变len的时候,要有一层循环,来更新tree[rt].len[i],其中tree[rt] ...

  6. PHP mcrypt加密扩展使用总结

    在开发中,很多时候我们在前后端交互中需要对一些敏感数据进行一定的加密.PHP中有提供了mcrypt的这样一个加密扩展实现对数据的加密解密. 一.mcrypt扩展的安装 在低版本的PHP中需要在配置文件 ...

  7. 超详细图解:自己架设NuGet服务器

    原文:http://diaosbook.com/Post/2012/12/15/setup-private-nuget-server NuGet 是.NET程序员熟知的给.NET项目自动配置安装lib ...

  8. Xcode7 真机调试步骤以及遇到的问题解决办法

    打开Xcode7,打开preference 添加自己的apple ID登陆上去 打开一个自己的想要运行在真机上的项目 插上自己的iPhone真机(真机没必要是最新的系统,没必要升级,我刚开始报错以为是 ...

  9. [py] os.system os.popen commands 执行shell

      1.仅输出到屏幕,pwd保存的是状态<=====可用于执行shell命令 pwd=os.system(pwd)   2.popen可以保存命令结果 pwd=os.popen('pwd').r ...

  10. 使用地址栏访问CXF Webservice写法

    /* * 通过url调用 * http://localhost:8080/EFP/webService/TestWebservice/testOut/arg0/liuyx */ http://loca ...