2
我正在开发一个android日历应用程序,它在listview中显示日期。我能够在向下滚动的同时将数据添加到列表视图中。现在我想在滚动时做同样的事情。我怎样才能将数据添加到列表视图的顶部,并滚动列表视图的第一个数据?如何在列表视图的顶部添加添加数据
这是我的代码。
public class AllEventFragment extends Fragment{
private final int INITIAL_DAYS = 14;
private final int THRESHOLD = 14;
private int currentPage = 0;
private int previousTotal = 0;
private boolean loading = true;
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
mListView = (ListView) getView().findViewById(R.id.list);
mListView.setOnScrollListener(new AbsListView.OnScrollListener() {
private int mLastItem;
@Override
public void onScrollStateChanged(AbsListView absListView, int i) {
}
@Override
public void onScroll(AbsListView absListView, int firstVisibleItem, int visibleItemCount,
int totalItemCount) {
if (loading){
if (totalItemCount > previousTotal){
loading = false;
previousTotal = totalItemCount;
currentPage++;
}
if(totalItemCount < totalItemCount){
loading = false;
previousTotal = totalItemCount;
currentPage++;
}
}
if (!loading && (totalItemCount - visibleItemCount) <= (firstVisibleItem + THRESHOLD)){
addMoreDaysToBottom(currentPage + 1);
loading = true;
}
}
我已经做到了,并已经能够添加数据,同时滚动向下(但并未将该部分代码添加到上面显示的代码段中)。我现在的问题是当用户尝试超出ArrayList中的第一个元素时,如何以编程方式将数据添加到列表顶部。换句话说,这与我已经完成的工作相反。 – user2890137 2014-12-06 16:08:45
你的意思是像Facebook应用程序的拉到刷新效果? – 2014-12-06 16:10:40
实际上并没有真正拉动刷新效果。一个关闭的例子是WhatsApp聊天listView中的“加载早期消息”。由于我的日历应用程序,当用户尝试超出阵列列表中的第一个初始化元素(即今天的日期)时,前几天的日期将被添加到listView。我如何确定用户何时试图通过ScrollListener超越数组列表的第一个元素。 – user2890137 2014-12-06 16:23:54