1

水平スクロールビューでスクロールの方向を取得する方法を知りたい、左または右にスクロールする場合、 onScrollChnageListenerのようなものがあり、onLeftScrollまたはonRightScrollのメソッドがあるように、すぐにそれについて知る必要があります

4

2 に答える 2

0

少しのロジックがうまくいきました。単純に 2 つのポインターを取得し[firstPointerCurrentValue,firstPointerLastValue](....パニックにならないでください。firstPointer は常にリスト内の最初の表示項目を指す変数です)、それらを新しい値と更新された値に一致させます。

int firstPointerCurrentValue = 0;
int firstPointerLastValue = 0;

.........

lv.setOnScrollListener(new OnScrollListener() {
        @Override
        public void onScrollStateChanged(AbsListView alv, int scrollState) {

            checkValue(firstPointerCurrentValue, firstPointerLastValue);
            firstPointerLastValue = firstPointerCurrentValue;
        }

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

            firstPointerCurrentValue = firstVisibleItem;

        }
    });

……

boolean checkValue(int firstPointerCurrentValue, int firstPointerLastValue) {

    if (firstPointerCurrentValue > firstPointerLastValue) {
        Toast.makeText(getBaseContext(), "DOWN ", Toast.LENGTH_SHORT)
         .show();
        ab.hide();
    } else if (firstPointerCurrentValue < firstPointerLastValue) {
         Toast.makeText(getBaseContext(), "UP ",
         Toast.LENGTH_SHORT).show();

    } else {
        // Toast.makeText(getBaseContext(), "No Move ", Toast.LENGTH_SHORT)
        // .show();
    }

    return false;
}
于 2014-10-06T10:46:47.563 に答える