我的约束布局中的所有视图都将layout_height作为wrap_content。我的第一个观点是严格限制约束布局。下一个是自下而上地受限于我的第一个视图,依此类推。我的约束布局也具有layout_height作为wrap_content。我想检查当任何一个视图在点击时动态设置文本时,我的视图是否完全或部分滑出屏幕。
fun <T : View> T.afterMeasured( f: T.() -> Unit) {
viewTreeObserver.addOnGlobalLayoutListener(object : ViewTreeObserver.OnGlobalLayoutListener {
override fun onGlobalLayout() {
if (measuredWidth > 0 && measuredHeight > 0) {
println(height)
}
}
})
}
MyConstraintLayout.afterMeasured { }
我试图利用此乐趣来每次在视图中设置文本时检查约束布局高度,但确实如此,即使任何视图滑出屏幕,打印的高度也就是屏幕高度。
当任何视图中的高度发生变化时,我可以用什么乐趣来检查是否有任何视图滑出屏幕?
通过在我的最后一个视图上放置afterMeasured来解决,而不是将高度显示在屏幕上。
fun <T : View> T.afterMeasured( f: T.() -> Unit) {
viewTreeObserver.addOnGlobalLayoutListener(object : ViewTreeObserver.OnGlobalLayoutListener {
override fun onGlobalLayout() {
if (measuredWidth > 0 && measuredHeight > 0) {
var coordinate= intArrayOf(1,2)
getLocationOnScreen(coordinate)
println(coordinate[1])
//1584 constraint
}
}
})
}
wordtxt15.afterMeasured { }
欢迎任何更好的解决方案!