转自:http://www.bangchui.org/read.php?tid=14903
弹出输入法 时 隐藏了 ‘底部状态栏’ 在按 物理 返回键 后, 软键盘消失后 恢复 ‘底部状态栏’
- public class ImageViewCareIME extends ImageView
- {
- public ImageViewCareIME(Context context)
- {
- super(context);
- // TODO Auto-generated constructor stub
- }
- public static interface ImeUiChangeListener
- {
- public void onImeUiChange(int bottom);
- }
- ImeUiChangeListener mImeUiChangeListener;
- private int mPreBottom = 0;
- public void setOnImeUiChangeListener(ImeUiChangeListener imeUiChangeListener)
- {
- mImeUiChangeListener = imeUiChangeListener;
- }
- @Override
- protected void onDraw(Canvas canvas)
- {
- super.onDraw(canvas);
- Rect r = new Rect();
- if(getGlobalVisibleRect(r))
- {
- if(r.bottom != mPreBottom)
- {
- mPreBottom = r.bottom;
- System.out.println("Change: " + r.bottom);
- }
- }
- if(null != mImeUiChangeListener)
- mImeUiChangeListener.onImeUiChange(r.bottom);
- }
- }
在一定有图片变化的地方,加一个透明的小图片占位。 在位置变化时,根据不同的状态组合,过滤出需要的事件。 只从最后的效果看,功能实现
思路二(未验证):.
嗯...,给你点思路,你先试试看:
Activity的配置中可以指定 android:configChanges 属性,其中keyboardHidden应该就是你关心的。
然后再你的 Activity 中 覆写 onConfigurationChanged() 方法,在该方法中实现你要做的事情吧。
- public class ImageViewCareIME extends ImageView
- {
- public ImageViewCareIME(Context context)
- {
- super(context);
- // TODO Auto-generated constructor stub
- }
- public static interface ImeUiChangeListener
- {
- public void onImeUiChange(int bottom);
- }
- ImeUiChangeListener mImeUiChangeListener;
- private int mPreBottom = 0;
- public void setOnImeUiChangeListener(ImeUiChangeListener imeUiChangeListener)
- {
- mImeUiChangeListener = imeUiChangeListener;
- }
- @Override
- protected void onDraw(Canvas canvas)
- {
- super.onDraw(canvas);
- Rect r = new Rect();
- if(getGlobalVisibleRect(r))
- {
- if(r.bottom != mPreBottom)
- {
- mPreBottom = r.bottom;
- System.out.println("Change: " + r.bottom);
- }
- }
- if(null != mImeUiChangeListener)
- mImeUiChangeListener.onImeUiChange(r.bottom);
- }
- }
在一定有图片变化的地方,加一个透明的小图片占位。 在位置变化时,根据不同的状态组合,过滤出需要的事件。 只从最后的效果看,功能实现
- public class ImageViewCareIME extends ImageView
- {
- public ImageViewCareIME(Context context)
- {
- super(context);
- // TODO Auto-generated constructor stub
- }
- public static interface ImeUiChangeListener
- {
- public void onImeUiChange(int bottom);
- }
- ImeUiChangeListener mImeUiChangeListener;
- private int mPreBottom = 0;
- public void setOnImeUiChangeListener(ImeUiChangeListener imeUiChangeListener)
- {
- mImeUiChangeListener = imeUiChangeListener;
- }
- @Override
- protected void onDraw(Canvas canvas)
- {
- super.onDraw(canvas);
- Rect r = new Rect();
- if(getGlobalVisibleRect(r))
- {
- if(r.bottom != mPreBottom)
- {
- mPreBottom = r.bottom;
- System.out.println("Change: " + r.bottom);
- }
- }
- if(null != mImeUiChangeListener)
- mImeUiChangeListener.onImeUiChange(r.bottom);
- }
- }
在一定有图片变化的地方,加一个透明的小图片占位。 在位置变化时,根据不同的状态组合,过滤出需要的事件。 只从最后的效果看,功能实现