当android中的软键盘处于活动状态时,将窗口的位置设置为顶部

时间:2013-04-30 09:26:31

标签: android virtual-keyboard android-windowmanager

我想在虚拟键盘处于活动状态时管理我的屏幕。在我有2个想法之前 1.在scrollview中输入父布局:       但问题是当我运行应用程序时,我的布局在虚拟键盘处于活动状态时滚动到顶部,但是没有子控件正在工作,即内部滚动视图&其他按钮被阻止。

2.获取edittext的坐标,以便根据eddittext的Y坐标处理窗口移动到顶部。使用的代码在这里

 et.setOnTouchListener(new OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            // TODO Auto-generated method stub


            int x=et.getLeft();
            int y=et.getTop();


            return true;
        }
    });

现在我不知道如何把这个位置放到我的窗口。请任何人帮助我,我的想法是否有效。如果没有那么建议我好主意。谢谢你。

我的Android SDK版本是:4.2

1 个答案:

答案 0 :(得分:1)

add below code to your activities onCreate() method : 

WindowManager.LayoutParams lp = getWindow().getAttributes();
lp.softInputMode = WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE;
getWindow().setAttributes(lp);

now, whenever softKeyboard appears Framework will resize activity window to fit in to available visible rectangle over softKeyboard.