Android Kotlin之BaseActivity
Posted 小于先森
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android Kotlin之BaseActivity相关的知识,希望对你有一定的参考价值。
一如既往,美图镇楼
第二步: 上代码
abstract class BaseActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState)
requestedOrientation= ActivityInfo.SCREEN_ORIENTATION_PORTRAIT //设置竖屏
initParameters(intent.extras)
setContentView(initLayout())
initData()//数据操作
initListener()
} abstract fun initParameters(bundle: Bundle?) abstract fun initLayout():Int //设置布局layout
abstract fun initData() //数据操作
abstract fun initListener() /*** * 执行判断点击在出edit的其他位置收起键盘 */
override fun dispatchTouchEvent(ev: MotionEvent?): Boolean { if(ev==null) return super.dispatchTouchEvent(ev) if(ev.action==MotionEvent.ACTION_DOWN&¤tFocus!=null&&isShouldHideKeyboard(currentFocus,ev)){
AppKeyBoardUtils.hideInputMethod(this)
} return super.dispatchTouchEvent(ev)
} /** * 根据EditText所在坐标和用户点击的坐标相对比,来判断是否隐藏键盘,因为当用户点击EditText时则不能隐藏 * * @param v * @param event * @return */
private fun isShouldHideKeyboard(v: View?, event: MotionEvent): Boolean { if (v != null && (v is EditText || v is Button)) {
val l = intArrayOf(0, 0)
v!!.getLocationInWindow(l)
val left = l[0]
val top = l[1]
val bottom = top + v!!.getHeight()
val right = left + v!!.getWidth() if (event.x > left && event.x < right && event.y > top && event.y < bottom) { return false
} else { return true
}
} // 如果焦点不是EditText则忽略,这个发生在视图刚绘制完,第一个焦点不在EditText上,和用户用轨迹球选择其他的焦点
return false
}
}
持续更新中,下一次将用kotlin写一个mvp模板。请持续关注。
以上是关于Android Kotlin之BaseActivity的主要内容,如果未能解决你的问题,请参考以下文章
Android Kotlin开发之使用Butterknife注意要点
Kotlin基础从入门到进阶系列讲解(入门篇)Android之GSON的使用
Kotlin基础从入门到进阶系列讲解(进阶篇)Android之Activity的生命周期
Android Studio(Kotlin)之RecyclerView