K
Ken-Iso
Neues Mitglied
- 2
Hallo zusammen,
ich habe eine Activity die ein Scollview enthält, dass mit ImageViews gefüllt ist. Ich möchte, dass bei einem Fling von rechts nach links die Activity beendet wird. Jeder der ImageViews ist für das Contextmenu registriert.
Ich habe nun das Problem, dass nur etwa die hälfte der Flings erkannt werden, wenn die ImageViews für das contextmenu registriert sind. Entferne ich die Registrierung funktionieren die Flings wie geschmiert.
Kann das Jemand nachvollziehen und mir vielleicht sogar einen Tip geben, wie ich das gelöst bekomme?
Vielen Dank!
ich habe eine Activity die ein Scollview enthält, dass mit ImageViews gefüllt ist. Ich möchte, dass bei einem Fling von rechts nach links die Activity beendet wird. Jeder der ImageViews ist für das Contextmenu registriert.
Ich habe nun das Problem, dass nur etwa die hälfte der Flings erkannt werden, wenn die ImageViews für das contextmenu registriert sind. Entferne ich die Registrierung funktionieren die Flings wie geschmiert.
Kann das Jemand nachvollziehen und mir vielleicht sogar einen Tip geben, wie ich das gelöst bekomme?
Vielen Dank!
PHP:
// ImageViews vorbereiten und gesture listener registrieren
for (int i = 0; i < imgCount; i++) {
img[i] = new ImageView(MenuFood.this);
img[i].setPadding(MainMenu.IMGPAD, MainMenu.IMGPAD, MainMenu.IMGPAD, MainMenu.IMGPAD);
img[i].setMaxHeight(imgH);
img[i].setMaxWidth(imgH);
img[i].setScaleType(ScaleType.FIT_XY);
img[i].setAdjustViewBounds(true);
img[i].setId(i);
img[i].setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
MenuFood.id = v.getId();
MenuFood.tim = System.currentTimeMillis();
if (gestureDetector.onTouchEvent(event))
return true;
else
return false;
}
});
img[i].setImageDrawable(dump[i].getDrawable());
// Wenn ich diese Zeile auskommentiere funktioniert es
registerForContextMenu(img[i]);
}
PHP:
// Contextmenu
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
final MenuInflater mi = new MenuInflater(getApplication());
mi.inflate(R.menu.imgcontext, menu);
}
PHP:
// Gesture class
class MyGestureDetector extends SimpleOnGestureListener {
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
try {
if (Math.abs(e1.getY() - e2.getY()) > MainMenu.SWIPE_MAX_OFF_PATH) {
Log.e("Fling", "Short");
return false;
}
// right to left swipe
if (e1.getX() - e2.getX() > MainMenu.SWIPE_MIN_DISTANCE
&& Math.abs(velocityX) > MainMenu.SWIPE_THRESHOLD_VELOCITY) {
finish();
return true;
}
} catch (Exception e) {
Log.e("Fling", "Exception");
}
Log.e("Fling", "None");
return false;
}
}