Android ScrollView滚动到指定子View中的子View

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()).

猜你喜欢

转载自blog.csdn.net/MoLiao2046/article/details/108322978