2015-05-06 29 views
9

Lollipop (5.x) platformda geri sıçrama değildir: O diğer platform sürümüne iyi çalışıyor, ancakoverScrollBy hep şu sonrası dayalı <code>ScrollView</code> yılında <code>overScrollBy</code> yöntemi geçersiz kıldık

http://jasonfry.co.uk/blog/android-overscroll-revisited/

Döndürme hareketi ScrollView'a uygulanırsa Lollipop geri dönüş yapamaz.

Bu sorunla karşılaştı ve bir geçici çözüm buldunuz mu?

@Override 
protected boolean overScrollBy(int deltaX, int deltaY, int scrollX, 
           int scrollY, int scrollRangeX, int scrollRangeY, 
           int maxOverScrollX, int maxOverScrollY, boolean isTouchEvent) { 
    return super.overScrollBy(deltaX, deltaY, scrollX, scrollY, 
      scrollRangeX, scrollRangeY, maxOverScrollX, OVER_SCROLL_AMOUNT, 
      isTouchEvent); 
} 

Teşekkür:

benim özel ScrollView sınıfta geçersiz kıldık setOverScrollMode(OVER_SCROLL_ALWAYS);

İlgili kod yapıcı olarak adlandırılır.

+0

Geçerli kodunuzu kaydeder misiniz? –

+0

Benim için tasarlandığı gibi çalışıyor gibi görünüyor, tam olarak neyin yanlış gittiğini genişletebilir ve bazı kodlar gönderebilir misiniz? – memoizr

+0

İlgili kodu güncellediğinizde, normalde sınırların üzerine gelin ve ardından çekim hareketini uygulayın ve kaydırma görünümü sadece durur. – Niko

cevap

4

KitKat bir Lollipop ScrollView arasındaki değişikliklere kazdım. Kodu takip etmek benim sorunum çözer.

@TargetApi(21) 
@Override 
public boolean dispatchNestedFling(float velocityX, float velocityY, boolean consumed) { 
    // Not consumed means it wasn't handled because ScrollView 
    // doesn't take over scrolling bounds into scroll range, 
    // so we fling it ourselves to get it bounce back 
    if (getOverScrollMode() == OVER_SCROLL_ALWAYS && !consumed) { 
     fling((int) velocityY); 

     return true; 
    } else { 
     return super.dispatchNestedFling(velocityX, velocityY, consumed); 
    } 
} 
+0

Lollipop 5.1'de benim için çalışmadım. Bu yüzden bu fonksiyonu sadece şu 2 satırla aştım: 'fling ((int) velocity); gerçek geri dönüşü ''. Ve şimdi çalışıyor. –