如何在滚动后在Listview顶部显示完全可见的项目?

时间:2014-10-17 08:51:24

标签: android listview android-listview visibility

如何在listview中继续前进。我的listitem包含30个仅显示images的项目。

在可见屏幕中,我们可以看到每个屏幕最少1 1/2个图像(即,一个完整图像和第二个图像的一半)。当我滚动listview时,很多次它发生在顶部listview中的项目部分可见(即只能看到一半)。所以我想限制在listview ...滚动后我想在Listview顶部仅显示完全可见的项目,避免在listview顶部显示部分可见的项目。

任何人都可以帮助我。请提出任何解决此问题的想法。

2 个答案:

答案 0 :(得分:2)

mListView.setOnScrollListener(new OnScrollListener() {
    @Override
    public void onScrollStateChanged(AbsListView view, int scrollState) {
        if (scrollState == AbsListView.OnScrollListener.SCROLL_STATE_IDLE) {
            mListView.smoothScrollToPosition(mListView.getFirstVisiblePosition());
        }
    }
    @Override
    public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
    }
});

答案 1 :(得分:0)

最后我基于setSelection()方法得到它。

mainListView.setOnScrollListener(new OnScrollListener() {
        //int currentTopVisible;
        @Override
        public void onScrollStateChanged(AbsListView view, int scrollState) {
            int index=mainListView.getFirstVisiblePosition();
            mainListView.setSelection(index);

}             }

        @Override
        public void onScroll(AbsListView view, int firstVisibleItem,
                int visibleItemCount, int totalItemCount) {

        }
    });