A függőleges újrahasznosító nézetemben több vízszintes újrahasznosító nézetem van, és van egy problémám: ha balra vagy jobbra akarok görgetni, ha egyidejűleg egy kicsit felfelé vagy lefelé görgetek, a vízszintes görgetés nem működik.
Tehát az volt az ötletem, hogy újradefiniáljam, mi van fent, lent, balra és jobbra az újrahasznosító nézetben. Így hát ráakadtam erre a szálra: Hogyan lehet észlelni csúsztassa az ujját a bal/jobb és a fel/le között
Először azt hittem, hogy ez az, amire szükségem van, de aztán megértettem, ez csak az irányok újradefiniálása egy húzás végén (nem közben), így megpróbáltam az összes szögszámítást elvégezni a csúsztatás során. Ezzel fejeztem be:
var initialX: Float
var initialY: Float
ui_recyclerView?.setOnTouchListener(object: View.OnTouchListener{
override fun onTouch(v: View?, event: MotionEvent?): Boolean {
val action = event?.actionMasked
if (action == MotionEvent.ACTION_DOWN) {
initialX = event.x
initialY = event.y
}
else if(action == MotionEvent.ACTION_MOVE) {
val swipeDirection = GestureUtils.getSwipeDirection(initialX, initialY, event.x, event.y)
if (swipeDirection == GestureUtils.Direction.UP || swipeDirection == GestureUtils.Direction.DOWN) {
return false
}
}
return true
}
})
Működött, de aztán már nem volt sima görgetés (nagyon robotos volt), és a kattintás sem.
Létezik-e beépített funkció recycler nézettel a MoveEvent egy bizonyos szögben történő korlátozására? Ha nem, hogyan állíthatom vissza a normál újrahasznosító nézet sima görgetési hatását?
Ez sokat segítene nekem!