Android下怎么取当前获得焦点的控件的ID

Android

1个回答

写回答

侯梦凡

2026-01-04 10:15

+ 关注

屏幕
屏幕

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

举报有用(0分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号