需求: listview显示的第一行永远为整行,不能为半行。
1. 添加 listview 的 setOnScrollListener() 事件
2. @Override onScrollStateChanged() 方法
@Override public void onScrollStateChanged(final AbsListView view, int scrollState) { if (scrollState == SCROLL_STATE_IDLE && lv.getLastVisiblePosition() != lv.getAdapter().getCount() - 1) { final int height = view.getChildAt(0).getHeight(); final int top = -view.getChildAt(0).getTop(); view.post(new Runnable() { @Override public void run() { view.smoothScrollBy((top > height / 2 ? height : 0) - top, 200); } }); } }