android 软键盘 返回键 消失事件 监听

时间:2022-05-09 00:30:31

转自:http://www.bangchui.org/read.php?tid=14903


弹出输入法 时 隐藏了 ‘底部状态栏’ 在按 物理 返回键 后, 软键盘消失后 恢复 ‘底部状态栏’
android 软键盘 返回键 消失事件 监听 
android 软键盘 返回键 消失事件 监听 
android 软键盘 返回键 消失事件 监听 



Java代码  android 软键盘 返回键 消失事件 监听
  1. public class ImageViewCareIME extends ImageView   
  2. {  
  3.     public ImageViewCareIME(Context context)   
  4.     {  
  5.         super(context);  
  6.         // TODO Auto-generated constructor stub  
  7.     }  
  8.   
  9.     public static interface ImeUiChangeListener  
  10.     {  
  11.         public void onImeUiChange(int bottom);  
  12.     }  
  13.       
  14.     ImeUiChangeListener mImeUiChangeListener;  
  15.   
  16.       
  17.     private int mPreBottom = 0;  
  18.       
  19.     public void setOnImeUiChangeListener(ImeUiChangeListener imeUiChangeListener)  
  20.     {  
  21.         mImeUiChangeListener = imeUiChangeListener;  
  22.                   
  23.     }  
  24.       
  25.     @Override   
  26.     protected void onDraw(Canvas canvas)   
  27.     {  
  28.         super.onDraw(canvas);  
  29.           
  30.         Rect r = new Rect();  
  31.         if(getGlobalVisibleRect(r))  
  32.         {  
  33.             if(r.bottom != mPreBottom)  
  34.             {  
  35.                 mPreBottom = r.bottom;  
  36.                   
  37.                 System.out.println("Change:   " + r.bottom);  
  38.             }  
  39.         }  
  40.           
  41.         if(null != mImeUiChangeListener)  
  42.             mImeUiChangeListener.onImeUiChange(r.bottom);  
  43.     }  
  44. }  
 

在一定有图片变化的地方,加一个透明的小图片占位。 在位置变化时,根据不同的状态组合,过滤出需要的事件。 只从最后的效果看,功能实现








思路二(未验证):.


嗯...,给你点思路,你先试试看: 

Activity的配置中可以指定 android:configChanges 属性,其中keyboardHidden应该就是你关心的。 

然后再你的 Activity 中 覆写 onConfigurationChanged() 方法,在该方法中实现你要做的事情吧。

Java代码  android 软键盘 返回键 消失事件 监听
  1. public class ImageViewCareIME extends ImageView   
  2. {  
  3.     public ImageViewCareIME(Context context)   
  4.     {  
  5.         super(context);  
  6.         // TODO Auto-generated constructor stub  
  7.     }  
  8.   
  9.     public static interface ImeUiChangeListener  
  10.     {  
  11.         public void onImeUiChange(int bottom);  
  12.     }  
  13.       
  14.     ImeUiChangeListener mImeUiChangeListener;  
  15.   
  16.       
  17.     private int mPreBottom = 0;  
  18.       
  19.     public void setOnImeUiChangeListener(ImeUiChangeListener imeUiChangeListener)  
  20.     {  
  21.         mImeUiChangeListener = imeUiChangeListener;  
  22.                   
  23.     }  
  24.       
  25.     @Override   
  26.     protected void onDraw(Canvas canvas)   
  27.     {  
  28.         super.onDraw(canvas);  
  29.           
  30.         Rect r = new Rect();  
  31.         if(getGlobalVisibleRect(r))  
  32.         {  
  33.             if(r.bottom != mPreBottom)  
  34.             {  
  35.                 mPreBottom = r.bottom;  
  36.                   
  37.                 System.out.println("Change:   " + r.bottom);  
  38.             }  
  39.         }  
  40.           
  41.         if(null != mImeUiChangeListener)  
  42.             mImeUiChangeListener.onImeUiChange(r.bottom);  
  43.     }  
  44. }  
 

在一定有图片变化的地方,加一个透明的小图片占位。 在位置变化时,根据不同的状态组合,过滤出需要的事件。 只从最后的效果看,功能实现


Java代码  android 软键盘 返回键 消失事件 监听
  1. public class ImageViewCareIME extends ImageView   
  2. {  
  3.     public ImageViewCareIME(Context context)   
  4.     {  
  5.         super(context);  
  6.         // TODO Auto-generated constructor stub  
  7.     }  
  8.   
  9.     public static interface ImeUiChangeListener  
  10.     {  
  11.         public void onImeUiChange(int bottom);  
  12.     }  
  13.       
  14.     ImeUiChangeListener mImeUiChangeListener;  
  15.   
  16.       
  17.     private int mPreBottom = 0;  
  18.       
  19.     public void setOnImeUiChangeListener(ImeUiChangeListener imeUiChangeListener)  
  20.     {  
  21.         mImeUiChangeListener = imeUiChangeListener;  
  22.                   
  23.     }  
  24.       
  25.     @Override   
  26.     protected void onDraw(Canvas canvas)   
  27.     {  
  28.         super.onDraw(canvas);  
  29.           
  30.         Rect r = new Rect();  
  31.         if(getGlobalVisibleRect(r))  
  32.         {  
  33.             if(r.bottom != mPreBottom)  
  34.             {  
  35.                 mPreBottom = r.bottom;  
  36.                   
  37.                 System.out.println("Change:   " + r.bottom);  
  38.             }  
  39.         }  
  40.           
  41.         if(null != mImeUiChangeListener)  
  42.             mImeUiChangeListener.onImeUiChange(r.bottom);  
  43.     }  
  44. }  
 

在一定有图片变化的地方,加一个透明的小图片占位。 在位置变化时,根据不同的状态组合,过滤出需要的事件。 只从最后的效果看,功能实现