240 发简信
IP属地:广东
  • override fun onTouchEvent(event: MotionEvent): Boolean {
    when (event.action) {
    MotionEvent.ACTION_DOWN -> {
    if (isOutOfBounds(event))
    mStartY = event.y
    }
    MotionEvent.ACTION_UP -> {
    if (mStartY > 0) {
    val moveY = event.y
    if (mStartY - moveY >= hasViewHalfHeight(mHeight)) {//滑动超过控件的一半认定为滑动事件
    dismiss()
    } else if (mStartY == moveY && isOutOfBounds(event)) {//认定为点击事件
    mListener?.onClick()
    dismiss()
    }
    }
    }
    }
    return false
    }

    /**
    * 是否有控件一半的高度
    * 没有就默认40
    */
    private fun hasViewHalfHeight(height: Int?): Int = if (null == height) 40 else (height / 2)

    改为滑动距离超过控件一半高度,并且是上划就认定为滑动事件

    Android全局通知弹窗的实现方法

    从手机顶部划入,短暂停留后,再从顶部划出。首先需要明确的是:1、这个弹窗的弹出逻辑不一定是当前界面编写的,比如用户上传文件,用户可能继续浏览其他页面的内容,但是监听文件是否上...

  • 滑动好像无效

    Android全局通知弹窗的实现方法

    从手机顶部划入,短暂停留后,再从顶部划出。首先需要明确的是:1、这个弹窗的弹出逻辑不一定是当前界面编写的,比如用户上传文件,用户可能继续浏览其他页面的内容,但是监听文件是否上...

  • @MisakaMkoto 简单来说就是
    boolean attachToRoot这个参数决定是否自动帮你添加view,也就是调用addview(view)这个方法,如果它为true,你又自己写了addview,就会报错
    ViewGroup root这个参数决定的是,你要添加的布局是否被这个root约束之类的,如果你填写了null,你的布局最外层无论设置宽高或margin或padding都无效,只有设置了root你写的那些margin之类的才有效

    Android LayoutInflater.inflate()使用详解

    相信大家都用过LayoutInflater(布局填充器),今天主要说下我对inflate方法的使用理解。inflate方法有如下两种: 查看源码,我们发现两个参数的方法内部引...

  • 在WebView中,onPageFinished()的回调意味着页面加载的完成。但该方法会在JavScript脚本执行完成后才会触发,倘若我们要加载的页面使用了JQuery,会在处理完DOM对象,执行完$(document).ready(function() {})后才会渲染并显示页面。这是不可接受的,所以我们需要对Js进行延迟加载,当然这部分是Web前端的工作。

    Android WebView注入JQuery、JS脚本及执行无效的问题解决

    在项目中遇到JQuery注入后,执行无效的问题。我们知道必须在网页加载完成后,也就是在onPageFinished()方法被调用后才能执行被注入的JS。但是在有些手机上并不能...

  • 没有DEMO吗,看下效果。 maybeShake是干什么用的。

  • 可以在调用前置空一下
    viewHolder.mCheckBox.setOnCheckedChangeListener(null);
    viewHolder.mCheckBox.setChecked(trueOrFalse);
    viewHolder.setOnCheckedChangeListener(yourCheckedChangeListener);

    RecyclerView 问题记录

    RecyclerView 问题记录 1 在点击事件中更新其他项时报错 需要制作子项选择后更新×投票×按钮的颜色的效果。 如果在item点击事件中直接使用notifyDataS...

  • (int resource, ViewGroup root, boolean attachToRoot)
    首先,总共有三个参数
    attachToRoot:
    attachToRoot为true的话,他会将resource添加进root里面
    attachToRoot为false的话不会
    root:
    root为空的情况下,第三个参数为默认为false,其实你写什么都无效的
    root不为空的情况下,他会使resource最外层view设置的宽高属性有效

    Android LayoutInflater.inflate()使用详解

    相信大家都用过LayoutInflater(布局填充器),今天主要说下我对inflate方法的使用理解。inflate方法有如下两种: 查看源码,我们发现两个参数的方法内部引...

  • targetSdkVersion升级到28一些修改的地方(持续更新)

    前言 Google Play应用市场对于应用的targetSdkVersion有了更为严格的要求。从 2018 年 8 月 1 日起,所有向 Google Play 首次提交...