我想知道Twitter和Facebook应用程序如何加载数据。
比如,当你滑动页面到底部时,你仍然可以与UI交互,并且它会显示更多数据正在加载...这是如何在程序上实现的?
更明确地说,当您向下滚动新闻源时,当您到达一个点时,它会显示一个圆圈表示进一步的数据正在加载,然后当有更多新的消息可用时,您也可以浏览那些消息。我希望我的表述足够清晰。 我只是想知道这种情况是如何实现的。 是否有任何示例呢?
我想知道Twitter和Facebook应用程序如何加载数据。
比如,当你滑动页面到底部时,你仍然可以与UI交互,并且它会显示更多数据正在加载...这是如何在程序上实现的?
更明确地说,当您向下滚动新闻源时,当您到达一个点时,它会显示一个圆圈表示进一步的数据正在加载,然后当有更多新的消息可用时,您也可以浏览那些消息。我希望我的表述足够清晰。 我只是想知道这种情况是如何实现的。 是否有任何示例呢?
http://github.com/commonsguy/cwac-endless
http://www.androidguys.com/2009/10/21/tutorial-autogrowing-listview/
来自链接二的示例逻辑。public class Test extends ListActivity implements OnScrollListener {
Aleph0 adapter = new Aleph0();
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setListAdapter(adapter);
getListView().setOnScrollListener(this);
}
public void onScroll(AbsListView view,
int firstVisible, int visibleCount, int totalCount) {
boolean loadMore = /* maybe add a padding */
firstVisible + visibleCount >= totalCount;
if(loadMore) {
adapter.count += visibleCount; // or any other amount
adapter.notifyDataSetChanged();
}
}
public void onScrollStateChanged(AbsListView v, int s) { }
class Aleph0 extends BaseAdapter {
int count = 40; /* starting amount */
public int getCount() { return count; }
public Object getItem(int pos) { return pos; }
public long getItemId(int pos) { return pos; }
public View getView(int pos, View v, ViewGroup p) {
TextView view = new TextView(Test.this);
view.setText("entry " + pos);
return view;
}
}
}