如许我们发明是可以实现效不雅了,然则我想全屏显示,懵比了,发明全屏的时刻不回调这个办法了,怎么办?又是查材料一看本来这个也是一个bug,然则有解决筹划,AndroidBug5497Workaround。也是谷歌供给的?直接拷贝过来,会发明其实他的感化就是让Activity最外层的根构造,当有构造变更时去响应这个变更mChildOfContent.getViewTreeObserver().addOnGlobalLayoutListener();
哈哈,看到这个标题是不是JH一紧,你可能会说我就没碰到过,然则如今没碰到不代表就遇不到,毕竟设计也是变幻莫测,只有你想不到的,没有你不克不及实现的,说的┞封么明日,到底是啥效不雅?没错就是一个小小的登录页面,大年夜家都有拉勾app吧,看拉勾的登录页做的很是腻滑动画,并且带动画效不雅,所以就有了类似拉勾登录效不雅,如图:
固然是个简单的页面,然则涵盖的器械不算少啊,很纳闷为何谷歌一向不供给简单,便利,精确的键盘监听事宜?惆怅啊,所以我们只能本身大年夜侧面监听键盘事宜了,我们可以监听最外层构造的变更来断定键盘是不是弹起了。闲话不多说,上车吧。
构造文件,大年夜家都能看懂吧。
我们要想监听键盘事宜,起首我们想获得的是键盘弹起的时刻我们可以去搞点工作,键盘搜起的时刻我们再去搞点工作,知道这些还不敷,我们还要知道键盘弹起了若干,以及须要平移若干的距离。我们都知道我们的一个页面弹起键盘的时刻这个页面的根构造会回调他的监听办法:addOnLayoutChangeListener( );当键盘弹起的时刻,我们的构造是变更了,是以会履行这个回调办法,然则前提是必须设置我们的Activity的windowSoftInputMode属性为adjustResize。
最后贴上源码:
我们想让构造整体平移的距离也就是弹起时刻处于最底部的view距离顶部的高度减去我们键盘的高度。如今认为只要控件将Activity向上推的高度跨越了1/3屏幕高,就认闻敉键盘弹起
- scrollView.addOnLayoutChangeListener(new ViewGroup.OnLayoutChangeListener() {
- @Override
- public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {
- /* old是改变前的左上右下坐标点值,没有old的是改变后的左上右下坐标点值
- 如今认为只要控件将Activity向上推的高度跨越了1/3屏幕高,就认闻敉键盘弹起*/
- if (oldBottom != 0 && bottom != 0 && (oldBottom - bottom > keyHeight)) {
- Log.e("wenzhihao", "up------>"+(oldBottom - bottom));
- int dist = btn_login.getBottom() - bottom;
- if (dist>0){
- ObjectAnimator mAnimatorTranslateY = ObjectAnimator.ofFloat(content,
推荐阅读
在3月23号,三六零科技股份有限公司与华泰结合证券签订了IPO上市指导协定,这意味着360会以IPO的方法回归A股。不久后,周鸿祎接收了中国证券报专访,谈及了为何退市,对人工智能的看法,以>>>详细阅读
地址:http://www.17bianji.com/lsqh/34661.html
1/2 1