v-if false handler
Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/43caaf36 Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/43caaf36 Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/43caaf36 Branch: refs/heads/0.16-dev Commit: 43caaf36cf2ea07ae82b4a17ec98871263f50c7d Parents: af99ed7 Author: jianbai.gbj <jianbai....@alibaba-inc.com> Authored: Tue Sep 12 15:28:31 2017 +0800 Committer: jianbai.gbj <jianbai....@alibaba-inc.com> Committed: Tue Sep 12 15:28:31 2017 +0800 ---------------------------------------------------------------------- .../main/java/com/taobao/weex/common/Constants.java | 2 ++ .../com/taobao/weex/ui/component/WXComponent.java | 15 +++++++++++---- .../list/template/WXRecyclerTemplateList.java | 10 +++++----- .../view/listview/ExtendedLinearLayoutManager.java | 2 +- .../src/test/java/com/taobao/weex/el/ParserTest.java | 2 ++ 5 files changed, 21 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/43caaf36/android/sdk/src/main/java/com/taobao/weex/common/Constants.java ---------------------------------------------------------------------- diff --git a/android/sdk/src/main/java/com/taobao/weex/common/Constants.java b/android/sdk/src/main/java/com/taobao/weex/common/Constants.java index ed40338..0cc5bf4 100644 --- a/android/sdk/src/main/java/com/taobao/weex/common/Constants.java +++ b/android/sdk/src/main/java/com/taobao/weex/common/Constants.java @@ -189,6 +189,8 @@ public class Constants { String LIST_DATA_ITEM_ID = "itemId"; String CELL_INDEX = "cellIndex"; String TYPE_INDEX = "typeIndex"; + + String KEEP_POSITION = "keepPosition"; } public interface Value { http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/43caaf36/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java ---------------------------------------------------------------------- diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java index dad2c1d..03adfd2 100644 --- a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java +++ b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java @@ -1663,10 +1663,17 @@ public abstract class WXComponent<T extends View> implements IWXObject, IWXActi this.waste = waste; WXDomObject domObject = (WXDomObject) getDomObject(); if(waste){ - domObject.setVisible(false); - if(getHostView() != null){ - getHostView().setVisibility(View.GONE); - } + if(WXUtils.getBoolean(domObject.getAttrs().get(Constants.Name.KEEP_POSITION), false)){ + domObject.setVisible(true); + if(getHostView() != null){ + getHostView().setVisibility(View.INVISIBLE); + } + }else{ + domObject.setVisible(false); + if(getHostView() != null){ + getHostView().setVisibility(View.GONE); + } + } }else{ domObject.setVisible(true); if(getHostView() != null){ http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/43caaf36/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/WXRecyclerTemplateList.java ---------------------------------------------------------------------- diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/WXRecyclerTemplateList.java b/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/WXRecyclerTemplateList.java index 8895080..e8a9179 100644 --- a/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/WXRecyclerTemplateList.java +++ b/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/WXRecyclerTemplateList.java @@ -1078,11 +1078,11 @@ public class WXRecyclerTemplateList extends WXVContainer<BounceRecyclerView> imp templateViewHolder.setHolderPosition(position); Statements.doRender(component, getStackContextForPosition(position)); if(WXEnvironment.isApkDebugable()){ - WXLogUtils.d(TAG, position + " onBindViewHolder render used " + (System.currentTimeMillis() - start)); + WXLogUtils.d(TAG, position + getTemplateKey(position) + " onBindViewHolder render used " + (System.currentTimeMillis() - start)); } Layouts.doLayout(component, templateViewHolder.getLayoutContext()); if(WXEnvironment.isApkDebugable()){ - WXLogUtils.d(TAG, position + " onBindViewHolder render used " + (System.currentTimeMillis() - start)); + WXLogUtils.d(TAG, position + getTemplateKey(position) + " onBindViewHolder render used " + (System.currentTimeMillis() - start)); } } @@ -1102,15 +1102,15 @@ public class WXRecyclerTemplateList extends WXVContainer<BounceRecyclerView> imp component.lazy(false); component.createView(); if(WXEnvironment.isApkDebugable()){ - WXLogUtils.e(TAG, template + " onCreateViewHolder view used " + (System.currentTimeMillis() - start)); + WXLogUtils.d(TAG, template + " onCreateViewHolder view used " + (System.currentTimeMillis() - start)); } component.applyLayoutAndEvent(component); if(WXEnvironment.isApkDebugable()) { - WXLogUtils.e(TAG, template + " onCreateViewHolder layout used " + (System.currentTimeMillis() - start)); + WXLogUtils.d(TAG, template + " onCreateViewHolder layout used " + (System.currentTimeMillis() - start)); } component.bindData(component); if(WXEnvironment.isApkDebugable()) { - WXLogUtils.e(TAG, template + " onCreateViewHolder bindData used " + (System.currentTimeMillis() - start)); + WXLogUtils.d(TAG, template + " onCreateViewHolder bindData used " + (System.currentTimeMillis() - start)); } TemplateViewHolder templateViewHolder = new TemplateViewHolder(component, viewType); return templateViewHolder; http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/43caaf36/android/sdk/src/main/java/com/taobao/weex/ui/view/listview/ExtendedLinearLayoutManager.java ---------------------------------------------------------------------- diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/view/listview/ExtendedLinearLayoutManager.java b/android/sdk/src/main/java/com/taobao/weex/ui/view/listview/ExtendedLinearLayoutManager.java index 07a8164..bdb5f91 100644 --- a/android/sdk/src/main/java/com/taobao/weex/ui/view/listview/ExtendedLinearLayoutManager.java +++ b/android/sdk/src/main/java/com/taobao/weex/ui/view/listview/ExtendedLinearLayoutManager.java @@ -110,6 +110,6 @@ public class ExtendedLinearLayoutManager extends LinearLayoutManager{ } public interface OnSmoothScrollEndListener { - public void onStop(); + void onStop(); } } http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/43caaf36/android/sdk/src/test/java/com/taobao/weex/el/ParserTest.java ---------------------------------------------------------------------- diff --git a/android/sdk/src/test/java/com/taobao/weex/el/ParserTest.java b/android/sdk/src/test/java/com/taobao/weex/el/ParserTest.java index f093b6a..623e28b 100644 --- a/android/sdk/src/test/java/com/taobao/weex/el/ParserTest.java +++ b/android/sdk/src/test/java/com/taobao/weex/el/ParserTest.java @@ -141,6 +141,8 @@ public class ParserTest extends TestCase { show(null); show("()++++"); + + show("item"); }