[英]Detect what view was clicked/touched below a alertdialog
我目前正在尝试增强一个最近从实习生那里获得的Android。
顺便说一句,我要达到的目的是当发生错误(例如,无效登录)时显示自定义Alertdialog-正常工作。 警报显示在屏幕底部,并一直持续到触摸屏幕为止。 问题是我希望将焦点设置为用户触摸的内容,例如用户可以触摸用户名输入或密码输入。 重点应得到上述观点的要求。
但是我不知道如何检测警报对话框“下方”正在按下的视图。
正如您自己在对问题的评论中所暗示的那样,可以找到特定(x,y)处的所有视图。
可以从View#getDrawingRect(android.graphics.Rect)中找到视图的绘图矩形,但是您可能需要补偿视图滚动(例如ScrollView,ListView)。
您可以通过获取根视图,然后遍历所有视图,子视图以及subviews-subviews等来找到正确的视图。
在执行onCreateView时,可以使用findViewById查找合适的根视图(用于活动)或保留对片段根视图的引用。
请注意,因为该视图位于顶部,所以请选择尽可能深的视图。
但是正如@tyczj所说,Android用户习惯于在警报对话框外单击不会影响下面的视图的情况。
祝好运!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.