Android 如何知道视图何时已滚动到视图中
我们目前正在开发一个应用程序,可以在寄存器和行中显示大型数据集。我们使用一个TableLayout作为基本视图,然后为每一行中带有LinearLayout的每个项目添加表行 我注意到,一旦记录量超过某个点1000多条记录,设备的速度就会大大降低。我敢肯定这是一个简单的内存问题也可以渲染吗?并且设计了一个可以提高速度的计划 我们已经在很多silverlight项目上实现了连续分页,我认为这是Android中最好的方法 我现在唯一的问题是识别一个特定的视图,比如说第100行已经滚动到视图中,这样我就可以开始渲染接下来的几行了 有人知道如何做到这一点,或者知道一种更好的方法来实现/处理大型数据集吗Android 如何知道视图何时已滚动到视图中,android,Android,我们目前正在开发一个应用程序,可以在寄存器和行中显示大型数据集。我们使用一个TableLayout作为基本视图,然后为每一行中带有LinearLayout的每个项目添加表行 我注意到,一旦记录量超过某个点1000多条记录,设备的速度就会大大降低。我敢肯定这是一个简单的内存问题也可以渲染吗?并且设计了一个可以提高速度的计划 我们已经在很多silverlight项目上实现了连续分页,我认为这是Android中最好的方法 我现在唯一的问题是识别一个特定的视图,比如说第100行已经滚动到视图中,这样我就
关于使用CustomListView而不是使用表布局,CustomListView具有重用行的功能 您可以在此处找到如何使用自定义列表视图
[Custom ListView][1]
您只需要将onScrollListener添加到视图中。 最好使用ListView来显示数据 从下面的代码中,您可以获得当前视图的索引 ListView.OnScrollListener是您需要实现并提供主体的接口 以下是两种方法 listView.SetOnScrollListener新建listView.OnScrollListener{ CrollLabsListView视图上的公共无效,int firstVisibleItem,int visibleItemCount, 整数totalItemCount{ }
public void onScrollStateChanged(AbsListView view, int scrollState) {
switch (scrollState) {
case OnScrollListener.SCROLL_STATE_IDLE:
mBusy = false;
int first = view.getFirstVisiblePosition();
int count = view.getChildCount();
break;
case OnScrollListener.SCROLL_STATE_TOUCH_SCROLL:
break;
case OnScrollListener.SCROLL_STATE_FLING:
break;
}
}
})
尝试打印first和count变量的值,它将解决您的问题。希望:我认为此视频对您非常有益
这篇文章讨论了你正面临的确切问题以及如何解决它 谢谢你,伙计!你能提供你提到的链接吗为使其快速运行,请尝试一些用于SlowAdapter和EfficientAdapter的代码