2016-01-16 3 views
2

Я хотел запрограммировать кнопку перетаскивания, которую вы можете перемещать туда, где хотите. Я попробовал его с onDrag(), но если я хочу отбросить кнопку, я получаю сообщение: «Отчет о снижении: false« Я не знаю почему. Другая проблема заключается в том, что shadowbuilder просто исчезает, если я отбрасываю кнопку. Я хочу преобразовать тень в обычную кнопку, если я ее опустил.Android: Отчет о снижении: false

Буду признателен, если кто-то может мне помочь.

@Override 
public boolean onLongClick(View v) { 
    ClipData clipdata = ClipData.newPlainText("", ""); 
    View parent = (View) v.getParent(); 
    parent.setVisibility(View.INVISIBLE); 
    View.DragShadowBuilder shadowBuilder = new View.DragShadowBuilder((View) v.getParent()); 
    v.startDrag(clipdata, shadowBuilder,parent, 0); 

    return true; 
} 


@Override 
public boolean onDrag(View v, DragEvent event) { 


    int dragaction = event.getAction(); 



    if (dragaction == DragEvent.ACTION_DRAG_STARTED) { 


     if (event.getClipDescription().hasMimeType(ClipDescription.MIMETYPE_TEXT_PLAIN)) { 
      //returns true, when view can is the view of onLongClick 
      Log.e("drag start", "drag started"); 

     } 
     return true; 

    } else { 

     if (event.getAction() == DragEvent.ACTION_DROP){ 
      v.setVisibility(View.VISIBLE); 

    } 


    return true; 
} 

ответ

0

Это не достаточно, чтобы переопределить метод onDrag, пожалуйста, следуйте stepsdescribed в официальном примере на андроид разработчиков: https://developer.android.com/guide/topics/ui/drag-drop.html

вам в основном нужно установить сопротивления слушателя, что суперкласс вашего так что вы можете переопределить его onDrag !?

+0

Уточнить ответ немного? в то время как ссылки приветствуются, вы должны предоставить более подробный ответ – jediz