You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@weex.apache.org by mi...@apache.org on 2017/08/15 09:19:39 UTC
[1/2] incubator-weex git commit: + [android] return contentSize on
getComponentRect when target component implemented ContentMeasurable
@notdanger
Repository: incubator-weex
Updated Branches:
refs/heads/0.16-dev 8a8dfb818 -> e941cfbac
+ [android] return contentSize on getComponentRect when target component implemented ContentMeasurable @notdanger
Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/adaf9cfe
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/adaf9cfe
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/adaf9cfe
Branch: refs/heads/0.16-dev
Commit: adaf9cfe9c2d79c3ed855a32490d59068e0ee8ee
Parents: 5951404
Author: misakuo <mi...@apache.org>
Authored: Mon Jul 31 11:35:46 2017 +0800
Committer: misakuo <mi...@apache.org>
Committed: Mon Jul 31 11:35:46 2017 +0800
----------------------------------------------------------------------
.../weex/dom/action/GetComponentRectAction.java | 12 ++++++++
.../weex/ui/component/ContentMeasurable.java | 29 ++++++++++++++++++++
.../taobao/weex/ui/component/WXScroller.java | 16 ++++++++++-
.../ui/component/list/BasicListComponent.java | 18 +++++++++++-
4 files changed, 73 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/adaf9cfe/android/sdk/src/main/java/com/taobao/weex/dom/action/GetComponentRectAction.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/dom/action/GetComponentRectAction.java b/android/sdk/src/main/java/com/taobao/weex/dom/action/GetComponentRectAction.java
index cf8e224..d622248 100644
--- a/android/sdk/src/main/java/com/taobao/weex/dom/action/GetComponentRectAction.java
+++ b/android/sdk/src/main/java/com/taobao/weex/dom/action/GetComponentRectAction.java
@@ -28,6 +28,7 @@ import com.taobao.weex.bridge.JSCallback;
import com.taobao.weex.bridge.SimpleJSCallback;
import com.taobao.weex.dom.RenderAction;
import com.taobao.weex.dom.RenderActionContext;
+import com.taobao.weex.ui.component.ContentMeasurable;
import com.taobao.weex.ui.component.WXComponent;
import com.taobao.weex.utils.WXViewUtils;
@@ -74,6 +75,17 @@ class GetComponentRectAction implements RenderAction {
size.put("top", getWebPxValue(sizes.top,viewPort));
options.put("size", size);
options.put("result", true);
+
+ if (component instanceof ContentMeasurable) {
+ Rect contentFrame = ((ContentMeasurable) component).getContentFrame();
+ if (contentFrame != null) {
+ Map<String, Float> contentSize = new HashMap<>(2);
+ contentSize.put("width", getWebPxValue(contentFrame.width(), viewPort));
+ contentSize.put("height", getWebPxValue(contentFrame.height(), viewPort));
+ options.put("contentSize", contentSize);
+ }
+ }
+
} else {
options.put("errMsg", "Component does not exist");
}
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/adaf9cfe/android/sdk/src/main/java/com/taobao/weex/ui/component/ContentMeasurable.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/component/ContentMeasurable.java b/android/sdk/src/main/java/com/taobao/weex/ui/component/ContentMeasurable.java
new file mode 100644
index 0000000..b804d5b
--- /dev/null
+++ b/android/sdk/src/main/java/com/taobao/weex/ui/component/ContentMeasurable.java
@@ -0,0 +1,29 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package com.taobao.weex.ui.component;
+
+import android.graphics.Rect;
+
+/**
+ * Created by moxun on 2017/7/31.
+ */
+
+public interface ContentMeasurable {
+ Rect getContentFrame();
+}
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/adaf9cfe/android/sdk/src/main/java/com/taobao/weex/ui/component/WXScroller.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXScroller.java b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXScroller.java
index 627776f..49037ca 100644
--- a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXScroller.java
+++ b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXScroller.java
@@ -69,7 +69,7 @@ import java.util.Map.Entry;
*/
@Component(lazyload = false)
-public class WXScroller extends WXVContainer<ViewGroup> implements WXScrollViewListener,Scrollable {
+public class WXScroller extends WXVContainer<ViewGroup> implements WXScrollViewListener,Scrollable,ContentMeasurable {
public static final String DIRECTION = "direction";
protected int mOrientation = Constants.Orientation.VERTICAL;
@@ -719,4 +719,18 @@ public class WXScroller extends WXVContainer<ViewGroup> implements WXScrollViewL
public void resetLoadmore() {
mForceLoadmoreNextTime = true;
}
+
+
+ @Override
+ public Rect getContentFrame() {
+ View innerView = getInnerView();
+ if (innerView != null) {
+ if (innerView instanceof WXScrollView) {
+ return ((WXScrollView) innerView).getContentFrame();
+ } else if (innerView instanceof WXHorizontalScrollView) {
+ return ((WXHorizontalScrollView) innerView).getContentFrame();
+ }
+ }
+ return null;
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/adaf9cfe/android/sdk/src/main/java/com/taobao/weex/ui/component/list/BasicListComponent.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/component/list/BasicListComponent.java b/android/sdk/src/main/java/com/taobao/weex/ui/component/list/BasicListComponent.java
index c959351..9f3b2cc 100644
--- a/android/sdk/src/main/java/com/taobao/weex/ui/component/list/BasicListComponent.java
+++ b/android/sdk/src/main/java/com/taobao/weex/ui/component/list/BasicListComponent.java
@@ -23,6 +23,7 @@ import android.content.Context;
import android.graphics.Color;
import android.graphics.Point;
import android.graphics.PointF;
+import android.graphics.Rect;
import android.os.Build;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
@@ -51,6 +52,7 @@ import com.taobao.weex.dom.ImmutableDomObject;
import com.taobao.weex.dom.WXAttr;
import com.taobao.weex.dom.WXDomObject;
import com.taobao.weex.ui.component.AppearanceHelper;
+import com.taobao.weex.ui.component.ContentMeasurable;
import com.taobao.weex.ui.component.Scrollable;
import com.taobao.weex.ui.component.WXBaseRefresh;
import com.taobao.weex.ui.component.WXComponent;
@@ -85,7 +87,7 @@ import java.util.regex.Pattern;
*/
public abstract class BasicListComponent<T extends ViewGroup & ListComponentView> extends WXVContainer<T> implements
- IRecyclerAdapterListener<ListBaseViewHolder>, IOnLoadMoreListener, Scrollable {
+ IRecyclerAdapterListener<ListBaseViewHolder>, IOnLoadMoreListener, Scrollable, ContentMeasurable {
public static final String TRANSFORM = "transform";
public static final String LOADMOREOFFSET = "loadmoreoffset";
private String TAG = "BasicListComponent";
@@ -1331,4 +1333,18 @@ public abstract class BasicListComponent<T extends ViewGroup & ListComponentView
return false;
}
+
+ @Override
+ public Rect getContentFrame() {
+ T wrapper = getHostView();
+ if (wrapper != null) {
+ RecyclerView recyclerView = wrapper.getInnerView();
+ if (recyclerView != null) {
+ int contentWidth = recyclerView.getMeasuredWidth() + recyclerView.computeHorizontalScrollRange();
+ int contentHeight = recyclerView.getMeasuredHeight() + recyclerView.computeVerticalScrollRange();
+ return new Rect(0, 0, contentWidth, contentHeight);
+ }
+ }
+ return null;
+ }
}
[2/2] incubator-weex git commit: Merge remote-tracking branch
'upstream/pr557' into apache-0.16-dev
Posted by mi...@apache.org.
Merge remote-tracking branch 'upstream/pr557' into apache-0.16-dev
Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/e941cfba
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/e941cfba
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/e941cfba
Branch: refs/heads/0.16-dev
Commit: e941cfbac1f93ce4fc8efbed0e1cee78235fb76c
Parents: 8a8dfb8 adaf9cf
Author: misakuo <mi...@apache.org>
Authored: Tue Aug 15 17:19:02 2017 +0800
Committer: misakuo <mi...@apache.org>
Committed: Tue Aug 15 17:19:02 2017 +0800
----------------------------------------------------------------------
.../weex/dom/action/GetComponentRectAction.java | 12 ++++++++
.../weex/ui/component/ContentMeasurable.java | 29 ++++++++++++++++++++
.../taobao/weex/ui/component/WXScroller.java | 16 ++++++++++-
.../ui/component/list/BasicListComponent.java | 18 +++++++++++-
4 files changed, 73 insertions(+), 2 deletions(-)
----------------------------------------------------------------------