【发布时间】:2017-06-27 13:00:42
【问题描述】:
我正在尝试为列表视图中的每个项目添加触摸监听器。 这是我的 CustomAdapter 中用于 currentView 的代码(我认为)
rowView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
x1 = event.getX();
return true;
case MotionEvent.ACTION_UP:
x2 = event.getX();
float deltaX = x2 - x1;
if (Math.abs(deltaX) > MIN_DISTANCE) {
if (x2 > x1) {
LEFT = false;
Logger.e("FALSE ");
txtTitle.setText("LEFT TO RIGHT");
moveLefttoRight = new TranslateAnimation(0, -150, 0, 0);
moveLefttoRight.setDuration(1500);
moveLefttoRight.setFillAfter(true);
swipeLayout.setAnimation(moveLefttoRight);
HomeChatAdapter.super.notifyDataSetChanged();
}
else {
LEFT = true;
Logger.e("TRUE");
txtTitle.setText("RIGHT TO LEFT");
moveLefttoRight = new TranslateAnimation(0, -150, 0, 0);
moveLefttoRight.setDuration(1500);
moveLefttoRight.setFillAfter(true);
swipeLayout.setAnimation(moveLefttoRight);
}
} else {
CLICKITEM = true;
return false;
}
break;
}
return false;
}
});
动画和 view.setText("blabla") 的问题 当我“从左到右或从右到左”完成滑动时 屏幕上没有变化 如果我搬出去 txtTitle.setText("从左到右");
moveLefttoRight = new TranslateAnimation(0, -150, 0, 0);
moveLefttoRight.setDuration(1500);
moveLefttoRight.setFillAfter(true);
swipeLayout.setAnimation(moveLefttoRight);
来自 TouchListener 的这部分代码 - 一切正常,但它在创建时工作一次。 任何人都可以帮助我在这种情况下如何解决? 只想将列表视图中的项目向左或向右移动。敬佩彼得。
【问题讨论】:
标签: java android listview adapter custom-adapter