startDrag(android.content.ClipData, android.view.View.DragShadowBuilder, java.lang.Object, int)
已弃用。如何解决这个问题而不失去与旧版本的兼容性?还有其他选择吗?我正在学习机器人基础知识,在尝试简单的拖放操作时,我遇到了这个错误。
答案 0 :(得分:22)
根据Androids API参考startDrag()
在API级别24中已弃用
将startDragAndDrop()
用于较新的平台版本。
由于Android API等级24等于Android N,您可以使用:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
view.startDragAndDrop(...);
} else {
view.startDrag(...);
}
答案 1 :(得分:4)
startDrag
最近被弃用 - 在API 24中。因此,您可以使用startDragAndDrop
来区分版本。
您还可以说保留与较低版本的兼容性。事情是Drag& Drop在API 11中引入。所以你可以尝试区分版本:
if(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB) {
//MyDragEventListener comes in here
}
否则如上所述,没有正式拖拽和掉落的< API 11.在API 14(或API 15)下实现Android的功能并不多,因为根据Android Studio,只有少数设备在该版本下运行,即只有2.3%。
如果您仍然坚持这样做,您可以使用第三方库,例如Android-DragArea。
希望这有帮助!