美好的一天!我在拖放侦听器时遇到问题。我有一个类似于日历的视图,您可以在其中上下拖动事件以更改时间,并在左右方向更改日期。问题是,当我在侧面拖动视图一定时间后显示新日期的新线性布局(这将触发更改日期)时,一旦隐藏的布局,拖动侦听器就不会对我的拖动视图做出反应。请注意,通过此操作,我还隐藏了当前正在拖动的视图的父级。
这是我更改职位的代码。对于要拖动的事件容器,我的拖动侦听器与此类似。
topic_partition
这就是我开始拖动日历中事件的方式
barLeft.setOnDragListener(new OnDragListener() {
@Override
public boolean onDrag(View v, DragEvent event) {
switch (event.getAction()) {
case DragEvent.ACTION_DRAG_ENTERED:
if (position - 1 >= 0) {
goToNext = true;
v.setBackgroundResource(R.drawable.bg_scheduled_bookings_next_left);
changePageRunnable = new Runnable() {
@Override
public void run() {
if (goToNext) {
setPosition(position - 1);
goToNext = false;
}
}
};
getHandler().postDelayed(changePageRunnable, 1000);
}
break;
case DragEvent.ACTION_DRAG_EXITED:
case DragEvent.ACTION_DRAG_ENDED:
v.setBackgroundColor(Color.TRANSPARENT);
goToNext = false;
default:
break;
}
return true;
}
});
barRight.setOnDragListener(new OnDragListener() {
@Override
public boolean onDrag(View v, DragEvent event) {
switch (event.getAction()) {
case DragEvent.ACTION_DRAG_ENTERED:
if (position + 1 < scheduledBookingContainer.getChildCount()) {
goToNext = true;
v.setBackgroundResource(R.drawable.bg_scheduled_bookings_next_right);
changePageRunnable = new Runnable() {
@Override
public void run() {
if (goToNext) {
setPosition(position + 1);
goToNext = false;
}
}
};
getHandler().postDelayed(changePageRunnable, 1000);
}
break;
case DragEvent.ACTION_DRAG_EXITED:
case DragEvent.ACTION_DRAG_ENDED:
v.setBackgroundColor(Color.TRANSPARENT);
goToNext = false;
default:
break;
}
return true;
}
});
这里的问题是我在新显示的linearlayout上的拖动监听器对拖动的视图没有反应。非常感谢任何能帮助我的人。