Hirdetés

Keresés

Új hozzászólás Aktív témák

  • thon73

    tag

    válasz thon73 #3553 üzenetére

    Hosszas próbálkozás után sem tudtam tökéletesen megoldani.
    Ha valaki egyszer ilyesmibe fut bele:

    A requestLayout() nem fut le azonnal, sőt elég sokáig nem fut le.
    Ha az onTouchEvent() rész alatt bárminek szüksége van az új kép adataira (méreteire), az ebben az időben még a korábbi (invalid) értéket fogja tartalmazni.
    Az új érték csak az onMeasure() (bizonyos esetekben egyszerűbb lehet az onSizeChanged) lefutása UTÁN érhető el - ami amúgy logikus.
    Ezen idő alatt skippelni kell (lehet) az érkező MotionEvent-eket.
    DE! a kihagyott eventek miatt nem bizonyos, hogy az UP/POINTER_UP eventeket elkapjuk.

    Nekem szerencsére nem kellett sem az UP, sem a DOWN részben a méret, és úgy találtam (próbálgatással), hogy valamiért a POINTER_DOWN rész sem következik be onMeasure() lezajlása előtt. (Ezt nem tudom, miért van így; lehet, hogy így sincs.) Viszont: A MOVE eseményekből 40-50 elemet is rendszeresen "skippel" a program.

    Így végül eléggé a lassú emberi reakciókra építek, de - végső soron - ez működik.

    ((Még olvastam egy listenerről, ami a layout lerendezése után értesít, de a logikán ez sem változtat.))

Új hozzászólás Aktív témák