【发布时间】:2021-09-04 16:52:10
【问题描述】:
在两个安卓模拟器上运行这个简单的代码: 像素 4 API 30, 像素 4 API 28
当我在 API 30 模拟器上长按图像视图时,视图会按照预期变得不可见,但视图阴影直到我在长按后开始拖动或移动时才可见,而它在 API 28 模拟器上工作正常。我尝试添加 startDragAndDrop,因为 startDrag 已被弃用(因此显示 Gradle 警告)但问题仍然存在。
如果有需要,我可以分享问题的视频。
public class MainActivity extends AppCompatActivity {
ImageView imageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView = findViewById(R.id.myimage4);
imageView.setOnLongClickListener(new MyLongClickListener());
}
private final class MyLongClickListener implements View.OnLongClickListener {
@Override
public boolean onLongClick(View view) {
View.DragShadowBuilder shadowBuilder = new View.DragShadowBuilder(view);
// Start the drag of the shadow
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
view.startDragAndDrop(null, shadowBuilder, view, 0);
} else {
view.startDrag(null, shadowBuilder, view, 0);
}
// Hide the actual view as shadow is being dragged
view.setVisibility(View.INVISIBLE);
return true;
}
}
}
【问题讨论】:
标签: android drag-and-drop draggable drag