美文网首页
scrollTo 之后,控件点击事件位置偏移

scrollTo 之后,控件点击事件位置偏移

作者: InFatuated | 来源:发表于2022-02-07 15:52 被阅读0次

有这么个问题,View.scrollTo(x,y)之后 页面会发生变化,而后点击移动后的点击事件,发现点击事件的对应不上,即200,200 的点击事件 变成了200+x,200+y的点击事件。
经资料查阅与自己实验理解后发现,scrollTo只会导致页面位置的变化,而原本的点击事件的具体响应实际位置并不会改变。
如果完成上述需求,有一个想法,就是在外面添加ScrollView,之后利用ScrollView.smoothScrollTo(x,y)方法,这样即就让他页面上发生变化,且实际事件的响应位置也发生了变化。
需要注意的是:需要在线程中使用ScrollView.smoothScrollTo(x,y)方法
代码如下

            if (handler1 == null)
                handler1 = new Handler();
            handler1.postDelayed(() -> {
                if (!isVisibleLocal(binding.clPasswordIcon))
                    binding.scrollView.smoothScrollTo(0, unDisplayViewSize(binding.clPasswordIcon));
            }, 300);

PS:可能只要自己看的懂,毕竟需要结合具体场景,只做记录用

相关文章

网友评论

      本文标题:scrollTo 之后,控件点击事件位置偏移

      本文链接:https://www.haomeiwen.com/subject/jopmkrtx.html