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

有这么个问题,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:可能只要自己看的懂,毕竟需要结合具体场景,只做记录用

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容