我的ListView 2台设备的行为,要么变成黄色/橙色时,我反弹时它,或者它可以overscrolled,然后扣回。 后者的行为是不好的,因为它显示了,我想阻止它下面的背景。
我试过了:
listview.setOverScrollMode(ListView.OVER_SCROLL_NEVER);
它不显示背景了,但现在有一个非常恼人的反弹效果。 是否有可能都禁用弹跳和滚动反弹并使其所以没有当它到达终点任何影响滚动刚刚结束?
PS:我在两台设备上使用的Android 2.3。
我的ListView 2台设备的行为,要么变成黄色/橙色时,我反弹时它,或者它可以overscrolled,然后扣回。 后者的行为是不好的,因为它显示了,我想阻止它下面的背景。
我试过了:
listview.setOverScrollMode(ListView.OVER_SCROLL_NEVER);
它不显示背景了,但现在有一个非常恼人的反弹效果。 是否有可能都禁用弹跳和滚动反弹并使其所以没有当它到达终点任何影响滚动刚刚结束?
PS:我在两台设备上使用的Android 2.3。
以下是我解决了这个,希望这将帮助那些搜索。 关键是一个OnScrollListener附加到列表中,跟踪时正在处理拖动手势,并在列表的末尾已经达到。 然后,一边扫视仍在继续,继续位置复位到结束时,如果系统尝试移动它。
private ListView mListView;
private ListAdapter mAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my_list);
mListView = (ListView) findViewById(R.id.listView);
mAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, getList(25));
mListView.setAdapter(mAdapter);
mListView.setOverScrollMode(View.OVER_SCROLL_NEVER);
if(Build.VERSION.SDK_INT == Build.VERSION_CODES.GINGERBREAD || Build.VERSION.SDK_INT == Build.VERSION_CODES.GINGERBREAD_MR1){
mListView.setOnScrollListener(new OnScrollListener(){
private boolean flinging = false;
private boolean reachedEnd = false;
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
flinging = (scrollState == AbsListView.OnScrollListener.SCROLL_STATE_FLING);
reachedEnd = false;
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
if(reachedEnd && flinging && (firstVisibleItem + visibleItemCount < totalItemCount)){
mListView.setSelection(mAdapter.getCount() - 1);
}else if(firstVisibleItem + visibleItemCount == totalItemCount){
reachedEnd = true;
}else{
reachedEnd = false;
}
}
});
}
}
您可以创建一个mylistview类,扩展列表视图,并且您可以覆盖overScrollBy方法,并设置maxOverScrollY为零