Get the App
SLTechnology News&Howtos  ›  Development  › 

What is the integration of ScrollView nested Viewpager and ListView

Shulou Source: shulou.com Published: 2022-06-02 10:19:19 09月27日 Update

What this article shares with you is about the integration of ScrollView nested Viewpager and ListView. The editor thinks it is very practical, so I share it with you to learn. I hope you can get something after reading this article.

1. ScrollView nested Viewpager to resolve sliding conflicts:

(1) re-ScrollView (Law I)

/ * * ScrollView * @ Description compatible with ViewPager: solved the problem of sliding and bouncing of ViewPager in ScrollView * / public class ScrollViewExtend extends ScrollView {/ / sliding distance and coordinates private float xDistance, yDistance, xLast, yLast; public ScrollViewExtend (Context context, AttributeSet attrs) {super (context, attrs);} @ Override public boolean onInterceptTouchEvent (MotionEvent ev) {switch (ev.getAction ()) {case MotionEvent.ACTION_DOWN: xDistance = yDistance = 0f; xLast = ev.getX () YLast = ev.getY (); break; case MotionEvent.ACTION_MOVE: final float curX = ev.getX (); final float curY = ev.getY (); xDistance + = Math.abs (curX-xLast); yDistance + = Math.abs (curY-yLast); xLast = curX; yLast = curY; if (xDistance > yDistance) {return false;} return super.onInterceptTouchEvent (ev);}}

(2) re-ScrollView (method II)

Public class MyScrollView extends ScrollView {

Private boolean canScroll

Private GestureDetector mGestureDetector

View.OnTouchListener mGestureListener

Public MyScrollView (Context context, AttributeSet attrs) {

Super (context, attrs)

MGestureDetector = new GestureDetector (new YScrollDetector ())

CanScroll = true

}

@ Override

Public boolean onInterceptTouchEvent (MotionEvent ev) {

If (ev.getAction () = = MotionEvent.ACTION_UP)

CanScroll = true

Return super.onInterceptTouchEvent (ev) & & mGestureDetector.onTouchEvent (ev)

}

Class YScrollDetector extends SimpleOnGestureListener {

@ Override

Public boolean onScroll (MotionEvent E1, MotionEvent e2, float distanceX, float distanceY) {

If (canScroll)

If (Math.abs (distanceY) > = Math.abs (distanceX))

CanScroll = true

Else

CanScroll = false

Return canScroll

}

}

}

The individual is solved with the first method, and can be dealt with by himself according to different circumstances!

The above is how the integration of ScrollView nested Viewpager and ListView is. The editor believes that there are some knowledge points that we may see or use in our daily work. I hope you can learn more from this article. For more details, please follow the industry information channel.

Tags: Integration more knowledge articles different practical personal coordinates that is work meetings situations articles methods look knowledge points industries details information channels follow Apple Docker Huawei Linux macOS MariaDB Microsoft MySQL NVidia OPPO Reno MariaDB NVidia vpn Xiaomi Shulou Tech Info