listview 滑动以后设置最上面一行为整行展示

需求:  listview显示的第一行永远为整行,不能为半行。

参考:   android 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);
                }
            });
        }
    }
原文地址:https://www.cnblogs.com/Westfalen/p/5384495.html