ScrollView
中一般嵌套一个LinearLayout
,当想用代码操作ScrollView
滚到到指定的子View
一般操作为ScrollView.scrollTo(0,View.getTop())
,但是有没有遇到这种方式无效的时候呢?
View.getTop()
是获取该View
相对于父容器的高度,比如ScrollView
包含ALinearLayout
,然后ALinearLayout
中包含BLinearLayout
和CLinearLayout
,TextView
控件为CLinearLayout
中子控件.想让ScrollView
滚动到CLinearLayout
中的TextView
控件处,直接使用ScrollView.scrollTo(0,TextView.getTop())
会失效.
- 因为
TextView.getTop()
等于它距离CLinearLayout
顶部的高度,如果想让ScrollView
滚动到该TextView
处还要再加上CLinearLayout
距离ALinearLayout
顶部距离,所以应该是ScrollView.scrollTo(0,CLinearLayout.getTop()+TextView.getTop())
.