2016-06-09 3 views
0

두 번 탭 수신기가 단편에서 작동하지 않습니다. 첫째로 나는 샘플 프로젝트에서 샘플 프로젝트에서 잘 작동하는 예제 프로젝트를 구현했다. 샘플 프로젝트에는 단 하나의 활동 만 존재한다.하지만 샘플 코드를 프로젝트에 통합하려고 할 때 잘 동작하지 않는다. 실제 프로젝트에는 그것에 조각을로드하는 활동. 내 요구 사항은 내가 그 부분 (활동에로드 된)에 대한 몇 가지 기능을 원한다면 그 부분을 두 번 탭하면됩니다. 문제는 두 번 탭 작동하지 않습니다. 여기에 내가 사용하고 코드입니다 를 성취하다.두 번 탭 수신기가 단편으로 작동하지 않습니다.

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    // If user is not logged in 
    if (new SessionHelper(this).getCurrentUser() <= 0) 
     startActivity(new Intent(this, LoginScreen.class)); 
    else { 
     mFragmentActivity = this; 

     // Broadcast receiver initialized here 
     mWifiStateReceiver = new WifiStateReceiver(mFragmentActivity); 

     setContentView(R.layout.activity_fragment); 
     initialize(); 
     setSupportActionBar(toolbar); 
     if (getSupportActionBar() != null) 
      getSupportActionBar().setDisplayShowTitleEnabled(false); 
     setClickListerns(); 

     gestureDetector = new GestureDetector(this, this); 

     gestureDetector.setOnDoubleTapListener(new GestureDetector.OnDoubleTapListener() { 
      @Override 
      public boolean onSingleTapConfirmed(MotionEvent e) { 
       LogHelper.debugLog("single tap"); 
       return false; 
      } 

      @Override 
      public boolean onDoubleTap(MotionEvent e) { 

       LogHelper.debugLog("doubletap"); 
       return false; 
      } 

      @Override 
      public boolean onDoubleTapEvent(MotionEvent e) { 
       return false; 
      } 
     }); 

     // Check if redirected via push notification 
     if (getIntent().getExtras() != null && getIntent().getExtras().getBoolean("Notification", false)) 
      replaceFragemtn(new StatementOfAccount(), false); 
     else 
      replaceFragemtn(new HomeFragment(), false); 

    } 
} 

나는이

public class FragmentActivity extends BaseClass 
     implements View.OnClickListener, GestureDetector.OnGestureListener {} 

처럼 내 활동에 GestureDetector.OnGestureListener를 구현하고 내가 onTouchEvent()이

@Override 
public boolean onTouchEvent(MotionEvent event) { 
    return gestureDetector.onTouchEvent(event); 
} 

같은 방법을 무시하고 내가 할 수 없습니다입니다 내가 잃어버린 것을이 물건을 찾아내는 것. 오랫동안이 문제를 해결하려고 노력했지만 luc 케이. 제발 도와주세요.

답변

0

정말 GestureDetector를 사용해야합니까?
이 옵션에 적합합니까?

public static abstract class DoubleClickListener implements View.OnClickListener { 

    private static final long DOUBLE_CLICK_TIME_DELTA = 300; 

    private long lastClickTime = 0; 

    @Override 
    public void onClick(View v) { 
     long clickTime = System.currentTimeMillis(); 
     if (clickTime - lastClickTime < DOUBLE_CLICK_TIME_DELTA) { 
      onDoubleClick(v); 
     } else { 
      onSingleClick(v); 
     } 
     lastClickTime = clickTime; 
    } 

    public abstract void onSingleClick(View v); 

    public abstract void onDoubleClick(View v); 
} 
+0

두 번 탭 수신기로 전체 화면을 원합니다. 구현해야하는 위치는 무엇입니까? 프래그먼트가로드되는 프레임 레이아웃입니다. 클릭 리스너에 전달해야합니까? –

+0

예, 다음과 같이 작성해야합니다. rootLayout.setOnClickListener (new DoubleClickListener() {....}); –

+0

아직도 작동하지 않습니다 : ( –

관련 문제