您的位置:首页 > 其它

解决Dialog对话框在输入法弹出时被遮挡的问题

2013-07-08 23:22 543 查看
今天在做项目时遇到一个问题。程序中有一个评论的对话框,对话框中包含了EditText和ImageButton,当点击EditText弹出输入法时,输入法框会遮挡Dialog中的ImageButton。在查阅了一些资料后,普遍的做法都是在Dialog中加入ScrollView。但是这就需要Dialog能够在弹出输入法的时候能够被resize(压缩)。在Android中,可以通过android:windowInputMode="adjustResize"来使得Activity能够被压缩。可是Dialog是不能通过该方法来实现。

要使得Dialog能够被压缩,可以在代码中进行如下设置:

Dialog mMainWindow = new Dialog(this, R.style.dialog_full_screen);
mMainWindow.setContentView(mMainView);
mMainWindow.setCancelable(true);
mMainWindow.show();
Window dialogWin = mMainWindow.getWindow();
WindowManager.LayoutParams lp = dialogWin.getAttributes();
/**
Dialog的width和height默认值为WRAP_CONTENT,正是因为如此,当屏幕中有足够的空间时,Dialog是不会被压缩的
但是设置width和height为MATCH_PARENT的代价是无法设置gravity的值,这就无法调整Dialog中内容的位置,Dialog的内容会显示在屏幕左上角位置不过可以通过Padding来调节Dialog内容的位置。
**/
lp.width = LayoutParams.MATCH_PARENT;
lp.height = LayoutParams.MATCH_PARENT;
dialogWin.setAttributes(lp);


通过以上方法,就会使得Dialog能够在输入法弹出时被Resize(需设置Dialog的Activity的android:windowInputMode="adjustResize",并且Dialog中的内容嵌套在ScrollView中)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐