Dialog与输入框的冲突

事件描述:
登录页面,输入11位手机号,四位验证码后,无需点击登录按钮,直接登录。当登录失败时,弹出dialog,对错误信息进行描述。发现Dialog未按照系统默认的在屏幕中心点显示,而是从屏幕上方,慢慢的移动到屏幕正中心。
测试过程:
屏蔽掉自动登录,改为手动登录,此时Dialog显示正常。后来怀疑是否是context造成的,直接在View层把context传递到Presenter中,调用Dialog展示方法,还是不行。
解决办法:
自动登录时,屏蔽掉输入框事件,当符合条件时,直接隐藏掉输入框。
结果分析
自动登录与手动登录的区别:手动登录时,当输入验证码时,因为有输入框遮挡登录按钮,此时需要关掉输入框,再点击登录;而自动登录的话,没有执行隐藏输入框操作,导致输入框与Dialog在同一图层,输入框把Dialog顶上去了,执行自动登录时,由于输入框的自动隐藏,Dialog下落,所以出现从上向下的动画。
隐藏输入框的方法:

public static void dismissKeyBoard(Context context) {
        View view = ((Activity)context).getWindow().peekDecorView();
        if(view != null) {
            InputMethodManager inputManger = (InputMethodManager)context.getSystemService(Context.INPUT_METHOD_SERVICE);
            inputManger.hideSoftInputFromWindow(view.getWindowToken(), 0);
        }

    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值