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);
                }
            });
        }
    }

 

posted @ 2016-04-12 21:11  MarcoReus  阅读(303)  评论(0编辑  收藏  举报