2016-06-09 12 views
0

Double-Tap-Listener funktioniert nicht in Fragment. Zuerst schrieb ich das und führte ein Beispielprojekt ein, das im Beispielprojekt gut funktioniert. Im Beispielprojekt gibt es nur eine Tätigkeit. Aber, wenn ich versuche, diesen Beispielcode in mein Projekt zu integrieren, funktioniert es nicht gut. Mein wirkliches Projekt hat ein Aktivität, die ein Fragment auf sie lädt.Meine Anforderung ist, wenn ich doppelt tippen Sie auf wo auf dem Fragment (geladen auf Aktivität) Ich möchte einige Funktionalität dagegen. Das Problem ist Doppeltipp funktioniert nicht.Hier ist der Code, den ich verwende es erreichen.Double Tap-Listener funktioniert nicht in Fragmenten

@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); 

    } 
} 

Ich bin die Umsetzung GestureDetector.OnGestureListener in meiner Aktivität wie diese

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

und ich bin zwingend onTouchEvent() Verfahren wie diese

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

bin ich nicht in der Lage um dieses Ding herauszufinden, was ich vermisse. Versuchen, das für eine lange Zeit zu lösen, aber kein Luc k. Irgendwelche Hilfe bitte.

Antwort

0

Müssen Sie GestureDetector wirklich verwenden?
Können Sie diese Option verwenden?

+0

Ich möchte einen vollständigen Bildschirm als Doppeltipp-Listener.Wo sollte ich implementieren? Das Rahmenlayout, das Fragment geladen wird. Soll ich dies auf clicklistener übergeben? –

+0

Ja, Sie sollten etwas wie folgt schreiben: rootLayout.setOnClickListener (new DoubleClickListener() {....}); –

+0

Funktioniert immer noch nicht :( –

Verwandte Themen