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&&currentFocus!=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

Android开发学习之路--Kotlin之Android开发使用心得和注意事项

Android开发学习之路--Kotlin之基础语法