3

ドキュメントを調べようとしましたが、setScrollIndicatorsが空であることがわかりました。それは何をしますか?

4

1 に答える 1

2

検索しようとしましたが、ドキュメントも見つかりませんでした。しかし、AbsListViewのソースを見ていると、次のことがわかりました

 View mScrollUp;
 View mScrollDown;

 public void setScrollIndicators(View up, View down) {
    mScrollUp = up;
    mScrollDown = down;
}


void updateScrollIndicators() {
    if (mScrollUp != null) {
        boolean canScrollUp;
        // 0th element is not visible
        canScrollUp = mFirstPosition > 0;

        // ... Or top of 0th element is not visible
        if (!canScrollUp) {
            if (getChildCount() > 0) {
                View child = getChildAt(0);
                canScrollUp = child.getTop() < mListPadding.top;
            }
        }

        mScrollUp.setVisibility(canScrollUp ? View.VISIBLE : View.INVISIBLE);
    }

    if (mScrollDown != null) {
        boolean canScrollDown;
        int count = getChildCount();

        // Last item is not visible
        canScrollDown = (mFirstPosition + count) < mItemCount;

        // ... Or bottom of the last element is not visible
        if (!canScrollDown && count > 0) {
            View child = getChildAt(count - 1);
            canScrollDown = child.getBottom() > mBottom - mListPadding.bottom;
        }

        mScrollDown.setVisibility(canScrollDown ? View.VISIBLE : View.INVISIBLE);
    }
}

ここで mListPadding は

   Rect mListPadding = new Rect();

これは、概念をよりよく理解するのに役立つ場合があります。私はまだこれを試していませんが、私の理解では、リストビューの最初の要素の上部または最後の要素または最後の要素の下部が表示されず、リストが(上または下に)スクロール可能である場合、それぞれのビューはupdateScrollIndicators() メソッドの呼び出し

これがあなたに役立つことを願っています

于 2013-02-01T11:59:19.550 に答える