Android OnTouch侦听器在应用程序处于发布模式时不起作用

时间:2018-05-17 06:35:32

标签: android ontouchlistener ontouch

在我的一个活动中,我有一个ImageView,我将它设置为onTouchListener,为了在屏幕上移动它,问题是当我在调试模式下测试它时一切正常,我看到ImageView是在屏幕上移动,我也可以点击它。但是,当我为发布模式创建一个已签名的APK并在同一台设备上进行测试时,它没有响应!

图像视图位于RelativeLayout内部并配置为:

files, err := ioutil.ReadDir("./")
if err != nil {
    log.Fatal(err)
}

for _, val := range files {
    // To handle codeowner and readme
    if !val.isDir(){
       continue
    }

   // To handle .git
   if val.Name() == ".git"{
     continue
   }
    err := filepath.Walk(val, func(path string, f os.FileInfo, err error) error {
     // Traverse dircectory , subdirectories and files
}

,代码是:(此代码在onCreate方法中找到)

gradle-wrapper.properties

我还有一个GestureDetectorListener来检测singleTap:

 <ImageView
    android:id="@+id/imageView"
    android:layout_width="90dp"
    android:layout_height="90dp"
    android:layout_centerInParent="true"
    android:src="@drawable/app_launcher"
    android:clickable="true"
 />

1 个答案:

答案 0 :(得分:0)

在创建时声明手势类:

final GestureDetector mGesDetect = new GestureDetector(this, new GestureListener());

之后放置图像触摸列表器,如下面的代码:

 imageView.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            mGesDetect.onTouchEvent(event);
            return true;
        }
    });


   private class GestureListener extends GestureDetector.SimpleOnGestureListener{
       @Override
        public boolean onSingleTapUp(MotionEvent e) {
           return true;
        }

       @Override
       public boolean onSingleTapConfirmed(MotionEvent e) {
         return true;
       } 
   }