2010-12-14 100 views
0

我们目前正在开发一个应用程序,以“寄存器”和行的形式显示大型数据集。我们使用TableLayout作为基本视图,然后为每个项目添加表格行(每行使用LinearLayout)。如何知道视图何时滚动到视图

我注意到,一旦记录的数量超过某个点(超过1000条记录),设备就会变得非常缓慢。我相信这是一个简单的记忆问题(可能也是渲染?),并设计了一个可以提高速度的计划。

我们已经在很多silverlight项目上实现了连续分页,并且我认为这是采用Android的最佳方法?

我现在唯一的问题是识别何时将特定视图(比如第100行)滚动到视图中,以便我可以开始呈现下几行。

有谁知道如何做到这一点,或者更好的方式来实现/处理大型数据集?

问候

回答

0

而不是使用表格布局中使用CustomListView,其中有重用行的能力。

你可以在这里找到如何使用自定义列表视图。

[Custom ListView][1] 
+0

谢谢你!你能否提供你所说的链接? :D – Renier 2010-12-14 18:06:17

+0

http://www.androidpeople.com/android-custom-listview-tutorial-example-part-2/ – Kakey 2010-12-14 18:09:41

0

你只需要添加onScrollListener到你的视图。 最好使用ListView来显示数据

从以下代码中,您可以获取当前视图的索引。

ListView.OnScrollListener是你需要实现的接口,并给出以下两种方法的主体

listView.setOnScrollListener(新ListView.OnScrollListener(){

公共无效onScroll(AbsListView视图,INT firstVisibleItem,INT visibleItemCount, INT 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; 

     } 
    } 

});

尝试打印第一的价值和计数变量会解决你的problem.Hopefully :)

+0

为了让它快速尝试一些代码SlowAdapter和EfficientAdapter – Javanator 2010-12-14 18:12:39

相关问题