我对 Android 中的动画有疑问。我制作了一个包含很多产品的应用程序,您现在可以通过从左到右滑动屏幕来切换产品(转到列表中的下一个产品)但是它现在就像任何其他活动一样加载。
我想要的是许多其他应用程序也有的东西,滑动需要使旧的活动从屏幕左移出,而新的活动同时进入。
我已经搜索和阅读了很多,但我真的不知道从哪里开始。
我的产品是活动,这是它们现在切换的方式:
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
try {
if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH)
return false;
// left to right swipe
if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
for(HashMap h: products) {
if (h.get("id").toString().equals(id)) {
int index = products.indexOf(h)-1;
if (index != -1) {
HashMap product = products.get(index);
dialog = ProgressDialog.show(ProductActivity.this, "",
"Laden...", true);
Intent i = new Intent(ProductActivity.this, ProductActivity.class);
i.putExtra("id", product.get("id").toString());
i.putExtra("profileId", profileId);
i.putExtra("score", product.get("score").toString());
i.putExtra("products", products);
startActivity(i);
}
else {
Toast.makeText(ProductActivity.this, "Dit is het eerste product in de lijst.", Toast.LENGTH_LONG).show();
}
}
}
}
//right to left swipe
else if(e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
for(HashMap h: products) {
if (h.get("id").toString().equals(id)) {
int index = products.indexOf(h)+1;
if (index != products.size()) {
HashMap product = products.get(index);
dialog = ProgressDialog.show(ProductActivity.this, "",
"Laden...", true);
Intent i = new Intent(ProductActivity.this, ProductActivity.class);
i.putExtra("id", product.get("id").toString());
i.putExtra("profileId", profileId);
i.putExtra("score", product.get("score").toString());
i.putExtra("products", products);
startActivity(i);
}
else {
Toast.makeText(ProductActivity.this, "Dit is het laatste product in de lijst.", Toast.LENGTH_LONG).show();
}
}
}
}
} catch (Exception e) {
// nothing
}
return false;
}