Wie zu bestimmen, ob ein NestedScrollView gescrollt ist zu Ende und im Leerlauf ist?
Versucht :
NestedScrollView ns =(NestedScrollView) findViewById(R.id.nested_scroll);
ns.setOnScrollChangeListener(new NestedScrollView.OnScrollChangeListener() {
@Override
public void onScrollChange(NestedScrollView v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
}
});
Aber hängengeblieben, hat jemand eine Idee?
Nur zu clearify, was ich will - ich will in der Lage sein, zu beobachten, die scroll-Staat (wie in addOnScrollListener der RecyclerView) und überprüfen Sie erst einmal, wenn das scrollen beendet ist (Leerlauf), wenn der Benutzer einen Bildlauf zu Ende der NestedScrollView.
- Sie hilfreich, SO stackoverflow.com/questions/36143802/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Leider
NestedScrollView
unterstützt nicht die Umsetzung, das scroll-Status, weil es völlig andere Art von Scroll-Ansicht. Es ist einfachFrameLayout
mitScroller
.In der Regel, Ende einer scroll-view ist erreicht, wenn
ViewCompat.canScrollVertically (scrollView, -1)
gibt false zurück. Für die scroll-Staat, müssen Sie UnterklasseNestedScrollView
und fügen Sie Ihre eigene Benutzeroberfläche, ähnlich der vonRecyclerView
. Ihre interface-Methode aufgerufen werden soll in der folgenden überschriebenen Methoden:stopNestedScroll()
->SCROLL_STATE_IDLE
startNestedScroll()
->SCROLL_STATE_DRAGGING
dispatchNestedPreFling()
->SCROLL_STATE_FLINGING
Bitte vergessen Sie nicht, die super-Aufrufe dieser Methoden. Wenn Sie nicht brechen Sie NestedScrollView Verhalten
Edit:
if
Aussage, die ich will, um zu überprüfen, ob scrollen im LEERLAUF ist dann etwas tun, und wenn es ist, ZIEHEN etwas anderes zu tun..!?als ich weiß, der einfachste Weg, dies zu tun ist die Verwendung setOnScrollChangeListener von NestedScrollView :
nestedScrollView.getScrollY() >= ((v.getMeasuredHeight() - nestedScrollView.getMeasuredHeight()) * 0.95)