我正在尝试创建一个动态可滚动视图。它将保留从服务器下载的元素列表。这个列表可能有数千个元素。因为这些元素必须在向下滚动时下载到列表中,并且还应该从列表顶部删除以保持较低的内存使用率。我还需要能够将不同的视图设置为元素。
最好使用ScrollView还是ListView?我将如何在列表中添加元素并控制何时下载更多元素?
我记得有关如何执行此操作的示例或教程的绊脚石。特别是关于如何在向下滚动时添加元素,删除顶部的元素,以及创建不同的xml视图以用作元素。我现在找不到这个示例教程。这是关于如何重新使用元素的方法,如果我在想滚动范围的话。
答案 0 :(得分:3)
你应该使用ListView,这正是它的用途,它完全符合你的描述。 :)
有关详细信息,请参阅此处:http://www.google.com/events/io/2010/sessions/world-of-listview-android.html
答案 1 :(得分:2)
这是一个非常多部分的问题,但我可能能够帮助它的某些部分。您可以使用ScrollView,我更喜欢这样做,因为它允许您根据需要定义任意数量的UI元素。
首先,我为每个列表元素创建一个XML布局。当您需要添加元素时,可以像这样膨胀此布局:
LinearLayout clone = (LinearLayout)View.inflate(this, R.layout.sample, null)
然后,您可以通过访问扩充的XML中的小部件来设置元素的信息
clone.findViewById(R.id.NameSpace).setText("This is element Johnny")
我会将克隆的ID设置为随机生成的数字或某种增量索引并以某种方式存储该数字(即List
或int[]
),保留“较旧”元素的ID在存储设备的前面。然后,当您需要访问元素以删除它们时,您只需为第一个元素调用ScrollView.removeView( findViewById( Storage.get(0) ) )
。