如何知道在滚动视图中当前设备屏幕上显示的是哪个子视图?如何知道在滚动视图的当前设备屏幕上显示哪个子视图?
我想制作一个无限的标尺应用程序,所以我需要在视图翻转时动态添加和删除视图,但是如何以及在哪里可以找出当前设备屏幕上显示的是哪个子视图,因此我可以添加或当我得到该childview更改通知时删除正确的视图?
或者,谁能给我一些其他的想法来实现这个功能?
如何知道在滚动视图中当前设备屏幕上显示的是哪个子视图?如何知道在滚动视图的当前设备屏幕上显示哪个子视图?
我想制作一个无限的标尺应用程序,所以我需要在视图翻转时动态添加和删除视图,但是如何以及在哪里可以找出当前设备屏幕上显示的是哪个子视图,因此我可以添加或当我得到该childview更改通知时删除正确的视图?
或者,谁能给我一些其他的想法来实现这个功能?
使用scrollView.getScrollY()
可以查找滚动视图的滚动视点的距离,并将其与子视图的高度进行比较(随时添加它们)以查看哪个视图必须位于屏幕上。
我也遇到过这个问题。你可以调用getlocalonscreen函数来获得视图的坐标。例如:
1.
view.getlocaloncreen(xy);// xy[0] is x axis, xy[1] is y axis.
2.
int nScreenWid = getwindowsmanager().getdefaultdisplay().getwidth();
int nScreenHei = getwindowsmanager().getdefaultdisplay().getHeight();
3.
if(xy[0] > nscreenWid)
{
// your view is beyond the x axis.
}
if(xy[1] > xxxxhei)
{ // beyond y axis }
感谢 getScrollY()也许右。 我刚刚发现anyview有scrollTo()函数,所以现在我立即使用lineanerlayout而不是ScrollView – user411475 2010-08-06 05:27:24