課程
/移動開發(fā)
/Android
/自定義實現(xiàn)頂部粘性下拉刷新效果
下拉菜單顯示,放開后在后來的位置,回不去
2017-07-23
源自:自定義實現(xiàn)頂部粘性下拉刷新效果 2-2
正在回答
請在setOnTouchListener的MotionEvent.ACTION_UP時候調(diào)用mPullDownView.release(),release();就是寫在自定義view中的那個值動畫函數(shù)
public void release() { ? ?if (valueAnimator == null){ ? ? ? ?valueAnimator = ValueAnimator.ofFloat(mProgress,0); ? ? ? ?valueAnimator.setDuration(300); ? ? ? ?valueAnimator.setInterpolator(new DecelerateInterpolator()); ? ? ? ?valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { ? ? ? ? ? ?@Override ? ? ? ? ? ?public void onAnimationUpdate(ValueAnimator animation) { ? ? ? ? ? ? ? ?Object value = animation.getAnimatedValue(); ? ? ? ? ? ? ? ?if (value instanceof Float){ ? ? ? ? ? ? ? ? ? ?setProgress((Float) value); ? ? ? ? ? ? ? ?} ? ? ? ? ? ?} ? ? ? ?}); ? ?}else { ? ? ? ?valueAnimator.cancel(); ? ? ? ?valueAnimator.setFloatValues(mProgress,0); ? ?} ? ?valueAnimator.start();}
舉報
構建一個可拉動的自定義View,自定義實現(xiàn)粘性下拉控件
2 回答拉不動怎么辦
1 回答TouchpullView后面怎么個個函數(shù)
2 回答都不知道貝塞爾曲線, 以后碰到類似問題,應該先在網(wǎng)上找找都有什么方法實現(xiàn)
1 回答不能實時畫
1 回答其中release()方法要放在MainActivity中的MotionEvent.ACTION_MOVE:中? 代碼如下:
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學習伙伴
掃描二維碼關注慕課網(wǎng)微信公眾號
2017-07-24
請在setOnTouchListener的MotionEvent.ACTION_UP時候調(diào)用mPullDownView.release(),release();就是寫在自定義view中的那個值動畫函數(shù)
public void release() {
? ?if (valueAnimator == null){
? ? ? ?valueAnimator = ValueAnimator.ofFloat(mProgress,0);
? ? ? ?valueAnimator.setDuration(300);
? ? ? ?valueAnimator.setInterpolator(new DecelerateInterpolator());
? ? ? ?valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
? ? ? ? ? ?@Override
? ? ? ? ? ?public void onAnimationUpdate(ValueAnimator animation) {
? ? ? ? ? ? ? ?Object value = animation.getAnimatedValue();
? ? ? ? ? ? ? ?if (value instanceof Float){
? ? ? ? ? ? ? ? ? ?setProgress((Float) value);
? ? ? ? ? ? ? ?}
? ? ? ? ? ?}
? ? ? ?});
? ?}else {
? ? ? ?valueAnimator.cancel();
? ? ? ?valueAnimator.setFloatValues(mProgress,0);
? ?}
? ?valueAnimator.start();
}