android 键盘弹出,布局重绘
16lz
2021-01-26
在我们一般写登录、注册页面的时候,经常会因为软键盘弹出导致页面上移,导致布局被遮挡,用户体验很不好。
我们可以使用自定义Layout,动态判断layout是否改变,在根据权重进行适配。
class AdjustLayout(context: Context, attributes: AttributeSet) : LinearLayout(context, attributes) { var keyboardShowed = false override fun onLayout(changed: Boolean, left: Int, top: Int, right: Int, bottom: Int) { super.onLayout(changed, left, top, right, bottom) if (changed) { val width = right - left val height = bottom - top if (height.toFloat() / width.toFloat() < 4f / 3f) { // 如果高宽比小于4:3说明此时键盘弹出 post { loginBgLayout.visibility = View.INVISIBLE val params = loginLayout.layoutParams as LayoutParams params.weight = 1.5f keyboardShowed = true loginLayoutTop.requestLayout() } } else { if (keyboardShowed) { post { loginBgWallLayout.visibility = View.VISIBLE val params = loginLayout.layoutParams as LayoutParams params.weight = 6f loginLayout.requestLayout() } } } } }}
更多相关文章
- 蓝牙hid协议源码解析
- Weex Android(安卓)返回键 页面传值 生命周期
- Android浏览页面时报数据连接性问题
- android自定义dialog,软件键盘弹出挡住输入区域解决
- Android(安卓)WebView 用法说明
- android使用mat分析内存泄漏
- Android利用ViewFlipper实现屏幕切换动画效果
- android MVC中如何在在controller中进行页面跳转(到其他Activity
- Android(安卓)软键盘盖住输入框的问题