You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@weex.apache.org by ky...@apache.org on 2019/07/30 09:19:17 UTC

[incubator-weex] branch master updated: [Android] fix interaction badcase (#2762)

This is an automated email from the ASF dual-hosted git repository.

kyork pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-weex.git


The following commit(s) were added to refs/heads/master by this push:
     new 2b9d773  [Android] fix interaction badcase (#2762)
2b9d773 is described below

commit 2b9d773cef2578c1e8e43d525c93535ca3dd1207
Author: chen <lu...@users.noreply.github.com>
AuthorDate: Tue Jul 30 17:19:12 2019 +0800

    [Android] fix interaction badcase (#2762)
    
    1. keybord show and input (addview)
    2. slider children position fix (inScreen?)
---
 .../com/taobao/weex/ui/component/AbstractEditComponent.java    |  3 +++
 .../main/java/com/taobao/weex/ui/component/WXComponent.java    | 10 +++++++++-
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/component/AbstractEditComponent.java b/android/sdk/src/main/java/com/taobao/weex/ui/component/AbstractEditComponent.java
index c06f611..351ac08 100644
--- a/android/sdk/src/main/java/com/taobao/weex/ui/component/AbstractEditComponent.java
+++ b/android/sdk/src/main/java/com/taobao/weex/ui/component/AbstractEditComponent.java
@@ -745,6 +745,9 @@ public abstract class AbstractEditComponent extends WXComponent<WXEditText> {
       getHostView().postDelayed(WXThread.secure(new Runnable() {
         @Override
         public void run() {
+          if (getInstance() != null && getInstance().getApmForInstance() != null){
+            getInstance().getApmForInstance().forceStopRecordInteraction = true;
+          }
           mInputMethodManager.showSoftInput(getHostView(), InputMethodManager.SHOW_IMPLICIT);
         }
       }), 100);
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 57bbd5c..d3464dd 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
@@ -179,6 +179,8 @@ public abstract class WXComponent<T extends View> extends WXBasicComponent imple
   public boolean mIsAddElementToTree = false;
   //for fix element case
   public int interactionAbsoluteX=0,interactionAbsoluteY=0;
+  //for fix slider case :cssLeft is not real left base parent;
+  protected int mChildrensWidth = 0;
   private boolean mHasAddFocusListener = false;
 
   public WXTracing.TraceInfo mTraceInfo = new WXTracing.TraceInfo();
@@ -1068,8 +1070,14 @@ public abstract class WXComponent<T extends View> extends WXBasicComponent imple
     }else {
       float cssTop = getCSSLayoutTop();
       float cssLeft = getCSSLayoutLeft();
-      interactionAbsoluteX = (int)(this.isFixed() ? cssLeft : mParent.interactionAbsoluteX + cssLeft);
+      interactionAbsoluteX = (int)(this.isFixed() ? cssLeft : mParent.interactionAbsoluteX + mParent.mChildrensWidth + cssLeft);
       interactionAbsoluteY = (int)(this.isFixed() ? cssTop  : mParent.interactionAbsoluteY + cssTop);
+      //fix for slider impl ,and interactionTime calculate if component is out screen
+      if (WXBasicComponentType.SLIDER.equalsIgnoreCase(mParent.getComponentType()) || WXBasicComponentType.CYCLE_SLIDER.equalsIgnoreCase(mParent.getComponentType())){
+        if (!WXBasicComponentType.INDICATOR.equalsIgnoreCase(getComponentType())){
+          mParent.mChildrensWidth += (int)(realWidth + cssLeft);
+        }
+      }
     }
 
     if (null == getInstance().getApmForInstance().instanceRect){