美文网首页
Android中ListView中如何进行精确的定位?

Android中ListView中如何进行精确的定位?

作者: 陈大冲 | 来源:发表于2016-08-02 11:21 被阅读370次

    这个问题,老是记不深刻,虽然常用,所以就写下来,让自己有空可以回来看一下。

    privatefinalLinkedList mPositionsList =newLinkedList();

    privatefinalLinkedList mHeightsList =newLinkedList();

    ......

    ......

    在onItemClick(AdapterView parent, View view,intposition,longid)中记录点击的位置,以及相对第一行的位置,

    intiFirstPosition = mListView.getFirstVisiblePosition() ==0? -1: mListView

                                 .getFirstVisiblePosition();

    intmToTopHeight = (position - iFirstPosition) * (view.getHeight() + mListView.getDivider                               Height()) - mListView.getDividerHeight();

    mPositionsList.add(position);

    mHeightsList.add(mToTopHeight);

    ......

    ......

    在需要恢复的位置上添加以下代码:

    mListView.setSelectionFromTop(mPositionsList.getLast(), mHeightsList.getLast());mPositi                          onsList.removeLast();

    mHeightsList.removeLast();

    当前位置相对于第一个可显示的位置的高度是:

    (当前位置-第一个显示在Listview中的位置) * (item项高+分隔符高)  -一个分隔符的高度

    在恢复位置时调用:

    mListView.setSelectionFromTop(mPositionsList.getLast(), mHeightsList.getLast());

    相关文章

      网友评论

          本文标题:Android中ListView中如何进行精确的定位?

          本文链接:https://www.haomeiwen.com/subject/fdpfsttx.html