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.
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? –
Ja, Sie sollten etwas wie folgt schreiben: rootLayout.setOnClickListener (new DoubleClickListener() {....}); –
Funktioniert immer noch nicht :( –