Toolbar包含EditText时,点击键盘弹出时Toolbar被拉伸
2016-06-24 18:03
267 查看
在Android开发中我们经常会用到Toolbar,为了App更加美观,也会支持透明状态栏,这时,我们一般会这么做:
在style-v19中添加
在Toolbar中添加
这时,如果我们的layout中包含可滚动的控件如ListView、ScrollView(即在键盘弹出时会调用onSizeChanged方法),而且屏幕中包含可编辑的控件如EditText,就会出现意想不到的现象,即Toolbar自动拉伸,直到接近键盘顶部
Toolbar被拉伸
大家会问这是Toolbar的bug吗?据我目前所知应该不是,而是某种处理逻辑,原谅我也不知道是什么逻辑=。=,我在StackOverflow发现也有人遇到这个问题,但也没有给出完美的解决办法,大家可以参考下Android
appcompat toolbar stretches when searchview gets focus
目前有两种解决办法:
将Toolbar的android:fitsSystemWindows="true"属性移至root view
这样可能无法支持透明状态栏,但相信聪明的你肯定能找到兼顾的解决办法^_^
处理后
在AndroidManifest中添加android:windowSoftInputMode="adjustPan"属性
这个方法有一个前提就是你不需要在键盘弹出时让你的布局自适应屏幕(即在键盘弹出时view不会调用onSizeChanged方法),并且可能会导致键盘遮挡屏幕上的内容。
注:
1,为了支持透明状态栏,可以这样调整:
当fitsSystemWindows=true移到根root view时,状态栏文字图标看不见,此时可以在root view添加和ToolBar一样的背景色,再在ToolBar一下区域添加默认的窗口背景色,即可实现
2,添加adjustPan后,进入该界面软件盘会自动弹出,此时可以在root view添加属性:
即可默认不弹出软件盘。
原文地址:http://www.jianshu.com/p/33da943732b2
在style-v19中添加
<item name="android:windowTranslucentStatus">true</item>
在Toolbar中添加
android:fitsSystemWindows="true"
这时,如果我们的layout中包含可滚动的控件如ListView、ScrollView(即在键盘弹出时会调用onSizeChanged方法),而且屏幕中包含可编辑的控件如EditText,就会出现意想不到的现象,即Toolbar自动拉伸,直到接近键盘顶部
Toolbar被拉伸
大家会问这是Toolbar的bug吗?据我目前所知应该不是,而是某种处理逻辑,原谅我也不知道是什么逻辑=。=,我在StackOverflow发现也有人遇到这个问题,但也没有给出完美的解决办法,大家可以参考下Android
appcompat toolbar stretches when searchview gets focus
目前有两种解决办法:
将Toolbar的android:fitsSystemWindows="true"属性移至root view
这样可能无法支持透明状态栏,但相信聪明的你肯定能找到兼顾的解决办法^_^
处理后
在AndroidManifest中添加android:windowSoftInputMode="adjustPan"属性
这个方法有一个前提就是你不需要在键盘弹出时让你的布局自适应屏幕(即在键盘弹出时view不会调用onSizeChanged方法),并且可能会导致键盘遮挡屏幕上的内容。
注:
1,为了支持透明状态栏,可以这样调整:
当fitsSystemWindows=true移到根root view时,状态栏文字图标看不见,此时可以在root view添加和ToolBar一样的背景色,再在ToolBar一下区域添加默认的窗口背景色,即可实现
2,添加adjustPan后,进入该界面软件盘会自动弹出,此时可以在root view添加属性:
android:focusable="true" android:focusableInTouchMode="true"
即可默认不弹出软件盘。
原文地址:http://www.jianshu.com/p/33da943732b2
相关文章推荐
- Spring面向切面编程的三种方式以及常用相关案例总结
- Hand Segment
- android 启动页白屏解决方案
- Java 中 HashMap 初始化时赋值
- inet_ntoa编译提示警告: 格式 ‘%s’ expects argument of type ‘char *’, but argument 2 has type ‘int’ [-Wformat]
- elasticsearch 修改mapping
- 通过ADB命令删除本地文件后,Andorid系统图库不更新的问题
- /**获取字符串所占大小*/
- Win7下使用U盘安装Ubuntu16.04双系统
- Format —— Java & Android
- Hibernate缓存
- A + B Problem II(高精度加法)
- win7下IIS的安装和配置 图文教程
- mysql 锁 实验
- 使用PowerDesigner进行面向对象分析与UML建模(转)
- Linux:正则表达式及:grep工具
- ajaxFileUpload+SpringMVC框架+maven 实现文件上传
- 关系型数据库之MariDB 10.0.10多主一从的架构及多线程复制架构
- 图文说明 Visual Studio 2013/2015 编译 libpqxx 步骤以及常见编译错误
- 华为机试---投篮游戏