- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我遇到了以下问题:我想为 LinearLayout 实现 View.DragOnListener。当我长按屏幕时,OnDrag 方法接收到 DragEvent.ACTION_DRAG_STARTED,但是当我在屏幕上释放拖动时。此方法无法接收 DragEvent.ACTION_DROP。希望得到大家的一些帮助。这是我的代码:
package com.example.dragdroptestapp;
import android.content.Context;
import android.util.AttributeSet;
import android.util.Log;
import android.view.DragEvent;
import android.view.View;
import android.widget.LinearLayout;
public class MyLinearLayout extends LinearLayout implements View.OnDragListener{
private final String TAG = "MyLinearLayout";
public MyLinearLayout(Context context) {
super(context);
initLongClick();
}
public MyLinearLayout(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
initLongClick();
}
public MyLinearLayout(Context context, AttributeSet attrs) {
super(context, attrs);
initLongClick();
}
@Override
public boolean onDragEvent(DragEvent event) {
final int action = event.getAction();
switch (action) {
case DragEvent.ACTION_DRAG_STARTED:
Log.e(TAG, "Started");
break;
case DragEvent.ACTION_DRAG_ENTERED:
Log.e(TAG, "Entered");
break;
case DragEvent.ACTION_DROP:
Log.e(TAG, "Droped");
break;
default:
Log.e(TAG, "action event" + String.valueOf(action));
break;
}
return true;
}
@Override
public boolean onDrag(View v, DragEvent event) {
Log.e(TAG, "onDrag");
final int action = event.getAction();
switch (action) {
case DragEvent.ACTION_DRAG_STARTED:
Log.e(TAG, "Started");
break;
case DragEvent.ACTION_DRAG_ENTERED:
Log.e(TAG, "Entered");
break;
case DragEvent.ACTION_DROP:
Log.e(TAG, "Droped");
break;
default:
break;
}
return true;
}
private void initLongClick() {
setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
Log.e(TAG, "LongClick");
View.DragShadowBuilder myShadow = new DragShadowBuilder(v);
v.startDrag(null, myShadow, null, 0);
return true;
}
});
}
}
最佳答案
我刚刚解决了类似的问题。神秘地接收 ACTION_DRAG_STARTED 和 ACTION_DRAG_ENDED 而不是 ACTION_DROP 的 View 位于另一个更大的 View 之下,该 View 也在监听拖动事件(但只有在它们被拖放到特定区域时才会对它们做任何事情)。
我通过将较大的 View 移到 XML 布局文件的顶部来解决此问题,这将它放在较小的 View “下方”。
关于android - OnDrag 无法接收 DragEvent.ACTION_DROP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21670807/
我不理解 Mike Bostock 的 D3 示例中 D3 DragEvent 对象的行为。 这是我不明白的两个例子: Circle Dragging I Drag + Zoom 这是我不明白的代码:
简短版: 有没有办法让新创建的 View 接收已在运行的拖放操作的 DragEvent? 有 How to register a DragEvent while already inside one
This page描述以编程方式创建事件的 API。查看列表,表明Chrome和Safari不支持创建DragEvents的此api。 我正在尝试为 Angular 应用程序中的原生 html5 拖放
我正在使用 3.0 中引入的拖放 API - 但是,我只希望拖动阴影跟随用户的手指,而他们在屏幕的一个特定区域内。如果他们漂移到外面,我希望阴影消失并且拖动事件结束。我已经做了一些搜索,发现 API
我正在尝试实现拖动拼图,我将一个图像移动到 LinearLayout 以解决拼图。 当我将一张图像放置到其中一个 LinearLayout 时一切正常,但我不想将任何其他图片放置在同一个 Linear
我有一个简单的布局,一旦拖动事件开始就会变得可见: 还有一些代码来处理将某些东西拖到其中一个 ImageView 上时发生的情况: View callButton =
我广泛使用 Java worldwind 作为在矩形扇区上显示数据的应用程序。我希望能够在全局范围内拖动这些数据。这种行为已在 WorldWind 中针对 SurfaceCircle 等形状实现。 (
我正在尝试在我的 Android 应用程序上使用图像拖动。我的问题是,当我停止拖动图像时,永远不会调用 DragEvent.ACTION_DROP。 在我的日志猫中,我接到了这个电话: 01-30 1
我试图为我的 Fragment 实现一个 DragListener,但是应用程序崩溃了,并在这一行给我一个 NoClassDefFoundError: findViewById(R.id.my_tab
出于测试目的,我需要模拟 DragEvent。但是我无法访问 DragEvent.obtain() 方法。 请建议一种模拟 DragEvent 的方法,这样我就可以在 DragListener 的 o
我遇到了以下问题:我想为 LinearLayout 实现 View.DragOnListener。当我长按屏幕时,OnDrag 方法接收到 DragEvent.ACTION_DRAG_STARTED,
我意识到已经发布了类似的问题,并且我查看了它们以及许多其他主题等以找到解决方案 - 我显然错过了显而易见的 - 因为我仍在学习基础知识! 目标:简单的拖放。用户在屏幕上移动图像,然后将其放在另一个图像
DragEvent 是与 Android 的拖放 API 一起使用的类。具体来说,它的2个方法,getX()和getY()尤为重要。我想确切地知道 View 另一个被拖过的 View 的哪个部分。 例
我在获取 DragEvent ACTION_DROP 的 X、Y 坐标时遇到问题。 我正在尝试为 gridview 单元格拖放设置动画,将单元格从释放点的 X、Y 移动到新的 X、Y。 下面是我用来尝
我在使用 DragEventHandler 时遇到问题。场景是:具有自己的 DragEventHandler 的父元素(在本例中为 Grid)包含也具有自己的 DragEventHandler 的子元
我是一名优秀的程序员,十分优秀!