GONE观点的位置

时间:2011-08-23 03:30:57

标签: android view scrollview

我有一个ScrollView-> TableLayout-> TableRow

在TableLayout内部,有些TableRows可见,有些已消失。因为点击TableRow,它下面的其他一些行将变得可见。 它现在一切正常,除了我转为可见的行可能不会出现在屏幕上,因为它们不在滚动视图显示区域。 我想在没有用户滚动的情况下显示它们,所以我需要获得行位置来进行滚动。 问题是,Draw inst立刻,所以我不能得到这个位置。我尝试使用invalidate和postinvalidate但是工作正常。

我该怎么办?

编辑:我真正想要的是一种更新我的观点的位置和大小的方法。

我在这里找到了解决方案(Android) Why won't invalidate() update my buttons immediately?

2 个答案:

答案 0 :(得分:0)

您知道新近可见细胞的绘制位置吗?如果你有一个位于其上方的单元格(如果你用addView()添加行,这将是有意义的),你可以在新的可见单元格上方获得单元格的底部位置(使用{ {3}}然后计算垂直偏移量),然后使用getChildAt()(或性感scrollTo())滚动到该位置 - 应该滚动以便新行位于屏幕顶部。突出显示新行也会帮助用户看到这是新内容。

答案 1 :(得分:0)

如果你可以计算 rowHeight。或每行的高度。那么你可以计算行(视图)可能出现的位置。

你可以打电话给

scrollView.scrollBy(x, y)

scrollView.scrollTo(x, y)
滚动视图中的