Android软键盘遮住界面解决办法:通过软键盘改变视图位置

来源:互联网 发布:失踪儿童数据库 编辑:程序博客网 时间:2024/05/16 12:15

经常在使用输入法时,输入法界面会遮住输入框所在界面的按钮,解决办法是:

 

方法:

1、首先获取布局界面的Layout对像,假设名称为FrameLayout01;

定义全局对象private FrameLayout FrameLayout01;

并声明这个对象

FrameLayout01 = (FrameLayout) findViewById(R.id.FrameLayout01);

 

2、监听输入框文本框的事件,假设文本框的对象名称为password,代码:
password.setOnFocusChangeListener(new OnFocusChangeListener()
        {
   @Override
   public void onFocusChange(View arg0, boolean arg1) {
    // TODO Auto-generated method stub
    if(arg1)
    {
     LayoutParams lp = (LayoutParams) FrameLayout01.getLayoutParams();
     lp.setMargins(0, -320, 0, 0);
     FrameLayout01.setLayoutParams(lp);
    }
    else
    {
     LayoutParams lp = (LayoutParams) FrameLayout01.getLayoutParams();
     lp.setMargins(0, 0, 0, 0);
     FrameLayout01.setLayoutParams(lp);
    }
   }
 });
上面代码的-320是top位置减320,也就是改变FrameLayout01的位置,使其往上移,通过改变top的值来实现不被软键盘遮住的效果。