在我们一般写登录、注册页面的时候,经常会因为软键盘弹出导致页面上移,导致布局被遮挡,用户体验很不好。
我们可以使用自定义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()                    }                }            }        }    }}

更多相关文章

  1. 蓝牙hid协议源码解析
  2. Weex Android(安卓)返回键 页面传值 生命周期
  3. Android浏览页面时报数据连接性问题
  4. android自定义dialog,软件键盘弹出挡住输入区域解决
  5. Android(安卓)WebView 用法说明
  6. android使用mat分析内存泄漏
  7. Android利用ViewFlipper实现屏幕切换动画效果
  8. android MVC中如何在在controller中进行页面跳转(到其他Activity
  9. Android(安卓)软键盘盖住输入框的问题

随机推荐

  1. 最简单的基于FFmpeg的移动端例子:Android(
  2. Android(安卓)解析XML文件方法
  3. Android读写XML(下)——创建XML文档
  4. android Content Provider
  5. 使用 Eclipse PhoneGap 构建 Android(安
  6. Android体验系列之--Gallery控件
  7. 我的Android进阶之旅------>Android拍照
  8. Android编译中m、mm、mmm的区别
  9. android组建属性及使用许可
  10. android下抓包