Я новичок в Android.
Предположим, у меня есть 2 просмотра: myImage
и myContainer
.
Что я хочу сделать: когда я перетаскиваю myImage
и помещаю его в myContainer
, цвет фона myContainer
изменится.
Для достижения этой цели я испробовал 2 подхода:
1) Поместить setBackgroundColor()
внутрь ACTION_DROP
так:
class MyDragListener implements OnDragListener {
...
@Override
public boolean onDrag(View v, DragEvent event) {
int action = event.getAction();
switch (event.getAction()) {
...
case DragEvent.ACTION_DROP:
...
myContainer.setBackgroundColor(Color.GREEN);
При таком подходе, когда я перетащил myImage
и поместил его в myContainer
, цвет фона myContainer
изменился на зеленый, но ненадолго, после этого он автоматически изменился на старый цвет.
2) Положить setBackgroundColor()
внутрь ACTION_DRAG_ENDED
так:
class MyDragListener implements OnDragListener {
...
@Override
public boolean onDrag(View v, DragEvent event) {
int action = event.getAction();
switch (event.getAction()) {
...
case DragEvent.ACTION_DRAG_ENDED:
...
myContainer.setBackgroundColor(Color.GREEN);
При таком подходе, когда я перетащил myImage
и поместил его в myContainer
, цвет фона myContainer
изменился на зеленый, но после этого, если бы я начал новое действие перетаскивания, он бы автоматически вернется к старому цвету.
Я нахожу это поведение setBackgroundColor()
довольно сложным для понимания, потому что раньше я всегда думал, что его эффект постоянен.
Не могли бы вы объяснить мне, почему цвет сбрасывался в этих ситуациях и как сделать изменение цвета постоянным.
Спасибо.