* [android] fix waterfall crash
Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/4ba3101b Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/4ba3101b Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/4ba3101b Branch: refs/heads/0.16-dev Commit: 4ba3101b9f9097615a4086a788303167d8601e23 Parents: c0f99ea Author: è«ç»ªæ» <xumin....@alibaba-inc.com> Authored: Fri Jul 21 17:55:33 2017 +0800 Committer: è«ç»ªæ» <xumin....@alibaba-inc.com> Committed: Fri Jul 21 17:55:33 2017 +0800 ---------------------------------------------------------------------- .../main/java/com/taobao/weex/dom/WXRecyclerDomObject.java | 4 ++++ .../com/taobao/weex/ui/component/list/WXListComponent.java | 8 ++++++++ 2 files changed, 12 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/4ba3101b/android/sdk/src/main/java/com/taobao/weex/dom/WXRecyclerDomObject.java ---------------------------------------------------------------------- diff --git a/android/sdk/src/main/java/com/taobao/weex/dom/WXRecyclerDomObject.java b/android/sdk/src/main/java/com/taobao/weex/dom/WXRecyclerDomObject.java index 62f4a22..7424a56 100644 --- a/android/sdk/src/main/java/com/taobao/weex/dom/WXRecyclerDomObject.java +++ b/android/sdk/src/main/java/com/taobao/weex/dom/WXRecyclerDomObject.java @@ -91,10 +91,14 @@ public class WXRecyclerDomObject extends WXDomObject{ } else if (Constants.Value.AUTO != mColumnWidth && Constants.Value.AUTO == mColumnCount) { mColumnCount = Math.round((mAvailableWidth + mColumnGap) / (mColumnWidth + mColumnGap)-0.5f); mColumnCount = mColumnCount > 0 ? mColumnCount :1; + if (mColumnCount <= 0) + mColumnCount = Constants.Value.COLUMN_COUNT_NORMAL; mColumnWidth =((mAvailableWidth + mColumnGap) / mColumnCount) - mColumnGap; } else if(Constants.Value.AUTO != mColumnWidth && Constants.Value.AUTO != mColumnCount){ int columnCount = Math.round((mAvailableWidth + mColumnGap) / (mColumnWidth + mColumnGap)-0.5f); mColumnCount = columnCount > mColumnCount ? mColumnCount :columnCount; + if (mColumnCount <= 0) + mColumnCount = Constants.Value.COLUMN_COUNT_NORMAL; mColumnWidth= ((mAvailableWidth + mColumnGap) / mColumnCount) - mColumnGap; } mIsPreCalculateCellWidth = true; http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/4ba3101b/android/sdk/src/main/java/com/taobao/weex/ui/component/list/WXListComponent.java ---------------------------------------------------------------------- diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/component/list/WXListComponent.java b/android/sdk/src/main/java/com/taobao/weex/ui/component/list/WXListComponent.java index 9b36be4..9a52dfb 100644 --- a/android/sdk/src/main/java/com/taobao/weex/ui/component/list/WXListComponent.java +++ b/android/sdk/src/main/java/com/taobao/weex/ui/component/list/WXListComponent.java @@ -90,6 +90,14 @@ public class WXListComponent extends BasicListComponent<BounceRecyclerView> { return; } setRefreshOrLoading(child); + + // Synchronize DomObject's attr to Component and Native View + if(mDomObject.getColumnWidth() != mColumnWidth || + mDomObject.getColumnCount() != mColumnCount || + mDomObject.getColumnGap() != mColumnGap) { + updateRecyclerAttr(); + getHostView().getInnerView().initView(getContext(), mLayoutType,mColumnCount,mColumnGap,getOrientation()); + } }