我有一个包含大量不同尺寸项目的列表视图
我有一个按钮可以滚动到列表视图中的某个项目
但是,当此项目为最后一个时,列表视图当然会在此项目可见时停止
但是我希望listview以这样的方式向上滚动:最后一项是屏幕上唯一可见的项目 - 列表底部是空白
我该怎么做?
我的滚动方法:
public void scrollTo(int newPosition) {
lv.smoothScrollToPositionFromTop(newPosition+ 1, 0, 500);
handler.postDelayed(new Runnable() {
@Override
public void run() {
//this is needed in order for the item to be at the top
//because the listview stops, if scrolling from top down, and stops
//once item becomes visible
lv.smoothScrollToPositionFromTop(newPoisition+ 1, 0, 0);
}
}, 501);
}
这是手动添加虚拟物品的崩溃报告
答案 0 :(得分:0)
嗯,您可以通过以下方式执行此操作:
要检测列表视图的结尾,您可以使用以下类:
public final class GVOnScrollListener implements AbsListView.OnScrollListener {
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
if (loading) {
if (totalItemCount > previousTotal) {
loading = false;
previousTotal = totalItemCount;
offset++;
}
}
if (!loading && totalItemCount == (firstVisibleItem + visibleItemCount) && (productCount > totalItemCount)) {
productListServiceRequest();
businessResultListView.setSelection(firstVisibleItem);
loading = true;
new Handler().postDelayed(new Runnable() {
public void run() {
readyToRequest = true;
}
}, 2000);
readyToRequest = false;
}
}
public void onScrollStateChanged(AbsListView view, int scrollState) {
}
}
并将其设置为列表视图,如:
listview.setAdapter(businessPromotionListAdapter);
通过上述课程,您可以看到: