
屏幕
要获得当前获得焦点的控件的ID,可以使用ViewTreeObserver来监听View的事件。具体步骤如下:1. 创建一个自定义的ViewTreeObserver,并实现onGlobalLayout()和onScrollChanged()方法;2. 在onGlobalLayout()方法中获取到
屏幕的宽度和高度信息,以及rootView的宽度和高度信息;3. 在onScrollChanged()方法中判断是否为垂直滚动条或者水平滚动条触发;4. 如果是垂直滚动条,则获取到滚动条所在位置即可;5. 如果是水平滚动条,则使用ViewTreeObserver.keyifyView()方法获取到获得焦点的控件,并通过该方法返回它的ID。需要注意的是,在调用keyifyView()方法前需要先将自己注册为ViewTreeObserver,并在最后移除自己。同时,在获取焦点控件ID时要留意重复计算等问题。