代码之家  ›  专栏  ›  技术社区  ›  jaychang0917

两者有什么区别ViewActions.click()和自定义ViewAction只执行view.performClick()?

  •  0
  • jaychang0917  · 技术社区  · 6 年前

    内置的 ViewActions.click() GeneralClickAction 在引擎盖下模拟click事件,它执行很多逻辑,比如计算坐标。

    我的问题是它与下面的实现有何不同?

    public class MyClickViewAction {
    
      public static ViewAction click() {
        return new ViewAction() {
          @Override
          public void perform(UiController uiController, View v) {
              v.performClick();
              uiController.loopMainThreadUntilIdle();
          }
        };
      }
    }
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   Rishabh Singh Bisht    6 年前

    你的 v.performClick(); 将触发代码流,您的点击监听器将被调用。 ViewActions.click() 就好像用户按了你的视图。视图将接收onTouch事件,然后它的视图作业将这些触摸事件转换为click事件,并将其传播到clickListener。