3

一度に 4 つの項目を表示する必要がある ListView があります。そして、項目を 1 つずつスクロールする必要があります。

ユーザーが ListView をスクロールした後、4 つの項目に合わせてスクロールを再調整する必要があります。つまり、アイテムを半分に表示することはできません。

別の質問ですが、現在の ListView の scrollY オフセットを取得する方法はありますか? listView.getScrollY() メソッドは View からのものですが、ListView 内の Scroller オブジェクトではないためです。

4

2 に答える 2

0

ScrollViewにセンサー「OnTouchListener」を実装できます。その場合、テクニックは、少なくともアイテムの高さまでスクローラーがなくなるまでスクロールしないことです。コードの例:

scroll.setOnTouchListener(new OnTouchListener()
{
     private int mLastY;
     public boolean onTouch(View v, MotionEvent event) 
     {          
        switch (event.getAction()) 
        {
            case MotionEvent.ACTION_DOWN:   //the user places his finger on the screen
                mLastY=(int)event.getY();   //to get the "y" position starting
                break;
            case MotionEvent.ACTION_MOVE:
                if(mLastY-event.getY() >= theSizeOfItem) //if a movement of the size of an item occurs
                {   
                    scroll.scrollTo(0, scroll.getScrollY()+ theSizeOfItem));
                    scroll.invalidate();
                    mLastY=(int)event.getY();   //reset the starting position to the current position                       

                }
                if(event.getY()-mLastY >= theSizeOfItem) //if a movement of the size of an item occurs
                {   
                    scroll.scrollTo(0, scroll.getScrollY() - theSizeOfItem));
                    scroll.invalidate();
                    mLastY=(int)event.getY();   //reset the starting position to the current position                       

                }
                break;
            default:
                break;
        }
        return v.onTouchEvent (event); //to use other sensors (OnClick, OnLongClick, ...)
    }});

次に、スクロールが最後に到達するケースを実装する必要があります! 私の英語で申し訳ありませんが、お役に立てば幸いです

于 2012-05-22T20:55:55.937 に答える