From 6d86b8cfeb7bb61b73420d4a332a755015b64142 Mon Sep 17 00:00:00 2001 From: "pengfei.zhou" Date: Tue, 3 Dec 2019 09:27:20 +0800 Subject: [PATCH] feat:Add Complext Demo --- .../src/main/java/pub/doric/refresh/DoricSwipeLayout.java | 4 +++- demo/src/ComplicatedDemo.ts | 7 ++++--- iOS/Pod/Classes/Refresh/DoricSwipeRefreshLayout.m | 3 +++ 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/Android/doric/src/main/java/pub/doric/refresh/DoricSwipeLayout.java b/Android/doric/src/main/java/pub/doric/refresh/DoricSwipeLayout.java index f861aa47..fec95651 100644 --- a/Android/doric/src/main/java/pub/doric/refresh/DoricSwipeLayout.java +++ b/Android/doric/src/main/java/pub/doric/refresh/DoricSwipeLayout.java @@ -30,6 +30,8 @@ import androidx.swiperefreshlayout.widget.CircularProgressDrawable; import android.view.animation.Animation.AnimationListener; +import pub.doric.utils.DoricUtils; + /** * @Description: pub.doric.pullable * @Author: pengfei.zhou @@ -912,7 +914,7 @@ public class DoricSwipeLayout extends ViewGroup implements NestedScrollingParent ViewCompat.offsetTopAndBottom(mRefreshView, offset); mCurrentTargetOffsetTop = mRefreshView.getTop(); if (mRefreshView.getMeasuredHeight() > 0) { - mRefreshView.setPullingDistance((float) mRefreshView.getBottom()); + mRefreshView.setPullingDistance(DoricUtils.px2dp(mRefreshView.getBottom())); } } diff --git a/demo/src/ComplicatedDemo.ts b/demo/src/ComplicatedDemo.ts index e1a784a0..c4c4db2f 100644 --- a/demo/src/ComplicatedDemo.ts +++ b/demo/src/ComplicatedDemo.ts @@ -1,4 +1,4 @@ -import { Panel, Group, vlayout, image, layoutConfig, ScaleType, refreshable, Color, pullable, stack, Image, Refreshable, TranslationAnimation } from "doric"; +import { Panel, Group, vlayout, image, layoutConfig, ScaleType, refreshable, Color, pullable, stack, Image, Refreshable, TranslationAnimation, loge, log } from "doric"; import { title, icon_refresh } from "./utils"; @Entry @@ -23,8 +23,9 @@ class MyDemo extends Panel { }, stopAnimation: () => { }, - setPullingDistance: (rotation: number) => { - headerImage.scaleX = headerImage.scaleY = (headerImage.height + rotation) / headerImage.height + setPullingDistance: (distance: number) => { + headerImage.scaleX = headerImage.scaleY = (headerImage.height + distance * 2) / headerImage.height + log(`Header Image scaleY:${headerImage.scaleY},height:${headerImage.height},distance:${distance}`) }, }), content: vlayout([]).apply({ diff --git a/iOS/Pod/Classes/Refresh/DoricSwipeRefreshLayout.m b/iOS/Pod/Classes/Refresh/DoricSwipeRefreshLayout.m index 473d5950..d0dfceec 100644 --- a/iOS/Pod/Classes/Refresh/DoricSwipeRefreshLayout.m +++ b/iOS/Pod/Classes/Refresh/DoricSwipeRefreshLayout.m @@ -69,6 +69,9 @@ - (BOOL)requestFromSubview:(UIView *)subview { } - (void)layoutSelf:(CGSize)targetSize { + if (self.contentOffset.y != 0) { + return; + } self.width = targetSize.width; self.height = targetSize.height; [self.headerView also:^(UIView *it) {