Сделать ScrollView AutoScroll с перетаскиванием в Android

Я искал все, но не смог найти решение.

У меня есть вид (давайте назовем его MyView) внутри ScrollView. MyView больше экрана. Поскольку я могу получить отношение x, y Положение моего пальца Внутри myview, я хотел бы сделать ScrollView AutoScroll до верхнего / снизу, когда мой палец входит в определенный верхний / нижний порог. У меня есть несколько идей, а именно перевод места перетаскивания на позицию экрана, но это не решило эту проблему.

Спасибо заранее

ура

5
задан thehayro 8 September 2011 в 17:37
поделиться

1 ответ

Я изменил ответ Tiago A. Я столкнулся с той же проблемой, и решение от Tiago A был маленьким и легким, но имейте некоторое ограничение поэтому, если другие требуют, чтобы это могло помочь. Благодаря Tiago A.

case DragEvent.ACTION_DRAG_LOCATION:
                    ScrollView myScrollView =findViewById(R.id.myScrollView);
                    int topOfDropZone = myScrollView.getChildAt(0).getTop();
                    int bottomOfDropZone = myScrollView.getChildAt(0).getBottom();

                    int scrollY = myScrollView.getScrollY();
                    int scrollViewHeight = myScrollView.getMeasuredHeight();

                    if (Math.round(event.getY()) > scrollViewHeight - (scrollViewHeight / 45))
                        if (bottomOfDropZone > (scrollY + scrollViewHeight - 100))
                            myScrollView.smoothScrollBy(0, 30);

                    if (Math.round(event.getY()) < (scrollViewHeight / 45))
                        if (topOfDropZone < (scrollY + 100))
                            myScrollView.smoothScrollBy(0, -30);

                    return true;
0
ответ дан 18 December 2019 в 10:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: