Android开发,输入框不被输入法顶上去

yubo_725 2015-08-17 11:44:28
下图是微信里的截图,我想做的效果就是,当输入框获取焦点时弹出输入法,输入法把输入框顶上去,但是整个页面不要被顶上去,类似微信这种效果,请问该怎么做,我查了相关资料,要么就是输入框不动,要么就是整个页面都被输入法顶上去了,知道的朋友麻烦给个解决办法,谢谢了!
...全文
10668 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
YXTS122 2018-07-08
  • 打赏
  • 举报
回复
沉浸式状态栏效果怎么样的啊 !!!!!
GetNoBug 2018-07-04
  • 打赏
  • 举报
回复 1
这个问题就是沉浸式状态栏和键盘弹出引起的冲突造成的,楼上说的嵌套scrollview、设置fillporttrue=true这些方法前提是不能有沉浸式状态栏的情况,github上已经有大神解决这个问题了,具体看一下这个链接: https://www.jianshu.com/p/87795b9cda4b 基本上解决了我的问题
Fight_destiny 2017-04-07
  • 打赏
  • 举报
回复
引用 15 楼 mqdxiaoxiao 的回复:
在布局文件的根标签处添加android:fitsSystemWindows="true"就可以完美解决。
多谢,确实很有用.完美解决了我的问题.
狼狈的灰太狼 2017-02-28
  • 打赏
  • 举报
回复
引用 16 楼 u012292060 的回复:
http://www.cnblogs.com/_ymw/p/4234185.html 这个是正解 加一个scrollview 还要 在 scrollview 中设置android:fillViewport="true"就可以 了
这种方式确实有用。沉浸式和 输入框的冲突问题完美解决
huya-wanghg 2016-04-23
  • 打赏
  • 举报
回复
http://www.cnblogs.com/_ymw/p/4234185.html 这个是正解 加一个scrollview 还要 在 scrollview 中设置android:fillViewport="true"就可以 了
野猿新一 2016-02-03
  • 打赏
  • 举报
回复
在布局文件的根标签处添加android:fitsSystemWindows="true"就可以完美解决。
yubo_725 2015-11-20
  • 打赏
  • 举报
回复
问题解决了,是我用沉浸式状态栏导致的,不用沉浸式状态栏时输入框是可以被输入法顶上去的,用了沉浸式状态栏就不行了,我用了一个办法解决的:
yubo_725 2015-08-18
  • 打赏
  • 举报
回复
引用 3 楼 fanlvlgh 的回复:
顶上去又没事
我说的是,我就是要输入框被输入法顶上去,现在达不到这个效果
yubo_725 2015-08-18
  • 打赏
  • 举报
回复
引用 5 楼 sinat_18376959 的回复:
在外面套一层scrollview
ScrollView里套ListView?那显示效果就不对了
yubo_725 2015-08-18
  • 打赏
  • 举报
回复
引用 4 楼 housijia525 的回复:
标题和你主题是反的啊
没有反吧亲
yubo_725 2015-08-18
  • 打赏
  • 举报
回复
引用 11 楼 Li_Jun__ 的回复:
试下在 Activity 下添加:android:windowSoftInputMode="adjustPan|stateHidden"
我试了一下,输入框是被顶上去了,但是是整个页面一起被顶上去的,还是没有达到微信的效果:只让页面底部的输入框顶上去,其他的不动
assky124 2015-08-18
  • 打赏
  • 举报
回复
可以用WindowManager添加一个子窗口来实现

    public void showEditor(){
        if(!isEditorShown) {
            WindowManager manager = getWindowManager();
            View view = getEditView();   //自定义的编辑控件,可以是一个EditText
            WindowManager.LayoutParams params = new WindowManager.LayoutParams();
            params.gravity = Gravity.BOTTOM;
            params.height = WindowManager.LayoutParams.WRAP_CONTENT;
            params.format = PixelFormat.RGBA_8888;
            params.softInputMode = WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE | WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE;
            params.type = WindowManager.LayoutParams.TYPE_APPLICATION_SUB_PANEL;
            params.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL;

            EditorManger.prepareEditor(manager,this,view);

            manager.addView(view, params);

        }
        if(editText != null){
            editText.setText(getCellValue(selectRowIndex,selectColumnIndex));
        }
        isEditorShown = true;

    }
=10_01= 2015-08-18
  • 打赏
  • 举报
回复
试下在 Activity 下添加:android:windowSoftInputMode="adjustPan|stateHidden"
愤怒的小老虎 2015-08-18
  • 打赏
  • 举报
回复
刚好看到一个帖子:http://blog.csdn.net/zhufuing/article/details/17783333 把你输入框那一行改成 PopupWindow来实现就可以了
yubo_725 2015-08-17
  • 打赏
  • 举报
回复
引用 1 楼 u010428110 的回复:
我怎么试了微信聊天,发现也是顶上去了?
我就是要输入框顶上去啊
快乐学习 2015-08-17
  • 打赏
  • 举报
回复
我怎么试了微信聊天,发现也是顶上去了?
dafasoft 2015-08-17
  • 打赏
  • 举报
回复
使用相对布局即可
sinat_18376959 2015-08-17
  • 打赏
  • 举报
回复
在外面套一层scrollview
你抗揍么 2015-08-17
  • 打赏
  • 举报
回复
标题和你主题是反的啊
fanlvlgh 2015-08-17
  • 打赏
  • 举报
回复
顶上去又没事

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧