我有一个LibGDX场景,其中包含几个图像(Actor子类)。我想将一个图像拖放到另一个图像上。我从位于DragDropTest.java的源代码开始。由于我基本上希望源是有效负载,因此我尝试修改payload.setDragActor以使用源Image。这类工作有效,我需要添加代码以将有效负载参与者放回舞台中,但这不是我的问题。
我的问题是有效载荷(当它是源actor或一个单独的actor时)并没有真正被拖动。取而代之的是,有效负载actor将自身稍微向下定位在鼠标光标的右侧。我要放置有效载荷,而不是指向要放置有效载荷的位置。完全没有拖动的感觉,感觉像是在光标后面。我在Android模拟器上看到的行为与在桌面版应用程序上看到的行为相同。
我试图拖动一个表行并将其放在类似的表中,即相同的表结构.
我试图用j查询drag-gable实现,但无法修复它.
我发现很少有jsfiddle链接
$("tbody.connectedSortable")
.sortable({
connectWith: ".connectedSortable",
items: "> tr:not(:first)",
appendTo: $tabs,
helper: "clone",
zIndex: 999990,
start: function () {
$tabs.addClass("dragging")
},
stop: function () {
$tabs.removeClass("dragging")
}
})
Run Code Online (Sandbox Code Playgroud)
但在这里我没有其他桌子的标签.
您好
我在我的应用程序中为ImageView设置了一个onTouchListener,我的目标是拥有一个用户可以在应用程序中拖动并放置在任意位置的ImageView.
我已经使用网络上的示例代码编写了一些代码,我认为它可以用于onTouchListener但是我遇到了一些问题,而不是让我拖动图像,图像调整大小并变大或变小你用手指拖过它.
有没有人有任何想法?
这是我的代码:
ImageView t1img;
t1img = (ImageView) findViewById(R.id.imgT1);
windowWidth = getWindowManager().getDefaultDisplay().getWidth();
windowHeight = getWindowManager().getDefaultDisplay().getHeight();
t1img.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
layoutParams = (LayoutParams) t1img.getLayoutParams();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
break;
case MotionEvent.ACTION_MOVE:
int xCoord = (int) event.getRawX();
int yCoord = (int) event.getRawY();
if (xCoord > windowWidth) {
xCoord = windowWidth;
}
if (yCoord > windowHeight) {
yCoord = windowHeight;
}
layoutParams.leftMargin = xCoord - 25;
layoutParams.topMargin = yCoord - 75;
t1img.setLayoutParams(layoutParams);
break; …Run Code Online (Sandbox Code Playgroud) 我在片段中有一个按钮,该按钮的可见性属性设置为“ GONE”。并且我想在拖放操作开始时将可见性设置为“ VISIBLE”。并在拖放操作结束时将可见性设置为“消失”,我该怎么办?
编辑:我使用了View.OnDragListener,但是当可见性设置为“ GONE”或“ INVISIBLE”时,它将根本不会调用View.OnDraglistener。
谢谢。
我试图从桌面拖放一个视频文件(如.avi)但是我不能把它带到我的程序.但是当我试图拖放到我的程序里面它工作正常.对于ex:我有一个edittext我的专业人员和ı里面的列表框可以将edittext内的文本移动到listbox.我无法得到有什么区别?
我使用openDialog拍摄视频.但是我想用拖放来改变它.
procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
MediaPlayer1.DeviceType:=dtAutoSelect;
MediaPlayer1.FileName := OpenDialog1.FileName;
Label1.Caption := ExtractFileExt(MediaPlayer1.FileName);
MediaPlayer1.Open;
MediaPlayer1.Display:=Self;
MediaPlayer1.DisplayRect := Rect(panel1.Left,panel1.Top,panel1.Width,panel1.Height);
panel1.Visible:=false;
MediaPlayer1.Play;
end;
end;
Run Code Online (Sandbox Code Playgroud) 这是我第一次进入这里,所以对任何新手的错误道歉.在发布之前,我在这里和谷歌都没有运气.
我希望能够使用文件浏览器中的拖放功能将图像添加到QListWidget.删除列表小部件上的有效文件还需要在我的应用程序的主类中触发一个函数,并将其传递给图像路径.
我发现这个代码正是如此,但对于PyQt4.在触发拖放事件时,从PySide而不是PyQt4导入QtCore和QtGui会产生分段错误.没有错误消息.
我想我已经将其追溯到一种处理信号的旧方法,并尝试使用这里描述的新的,更加pythonic的方式.我似乎无法使它工作,但仍然在类之间传递URL列表.
任何帮助将不胜感激!
import sys
import os
from PyQt4 import QtGui, QtCore
class TestListView(QtGui.QListWidget):
def __init__(self, type, parent=None):
super(TestListView, self).__init__(parent)
self.setAcceptDrops(True)
self.setIconSize(QtCore.QSize(72, 72))
def dragEnterEvent(self, event):
if event.mimeData().hasUrls:
event.accept()
else:
event.ignore()
def dragMoveEvent(self, event):
if event.mimeData().hasUrls:
event.setDropAction(QtCore.Qt.CopyAction)
event.accept()
else:
event.ignore()
def dropEvent(self, event):
if event.mimeData().hasUrls:
event.setDropAction(QtCore.Qt.CopyAction)
event.accept()
links = []
for url in event.mimeData().urls():
links.append(str(url.toLocalFile()))
self.emit(QtCore.SIGNAL("dropped"), links)
else:
event.ignore()
class MainForm(QtGui.QMainWindow):
def __init__(self, parent=None):
super(MainForm, self).__init__(parent)
self.view = TestListView(self)
self.connect(self.view, QtCore.SIGNAL("dropped"), self.pictureDropped)
self.setCentralWidget(self.view)
def …Run Code Online (Sandbox Code Playgroud) 对于鼠标事件ondragstart,拖动(事件)函数中的.setData/.getData调用工作正常.但是,当通过.trigger()触发ondragstart时,.setData/.getData方法无法正常工作并返回错误
"未捕获的TypeError:无法读取未定义的属性'setData'"
请不要指向使用TouchPunch等.js库.
我正在尝试绑定'touchmove'事件以触发拖动(事件)并提供可用于鼠标拖动触发事件的相同.setData/.getData功能.
HTML:
<div class="l-col-container">
<section id="1130" class="orderqueue">
<h1>Order Queue</h1>
<div class="orderList">
<div id="100" class="order" timeslot="1130" ordernumber="100" draggable="true" ondragstart="drag(event)">
<div class="order-name">Johnny Cash</div>
<div class="order-num">Order Number: 100</div>
</div>
<!-- /order -->
<div id="101" class="order" timeslot="1130" ordernumber="101" draggable="true" ondragstart="drag(event);">
<div class="order-num">101</div>
<div class="order-name">Johnny Cash</div>
</div>
<!-- /order -->
</div>
<!-- /orderlist -->
</section>
<div class="queuebar">
<h2>Queue Bar</h2>
<hr/>
<div class="queuebar-dropzone"></div>
</div> …Run Code Online (Sandbox Code Playgroud) 我想使用ListView为我的游戏创建一个库存用户界面,通过在级别中拖放项目,可以从库存中删除这些项目.如果物品未正确掉落(仍在库存内),则应将其放回拖动前的位置.
我有以下代码,但我不知道如何实现我所追求的,即使在查看拖放示例之后.
import QtQuick 2.3
Rectangle {
id: root
width: 400
height: 400
ListView {
id: listView
width: parent.width / 2
height: parent.height
model: ListModel {
Component.onCompleted: {
for (var i = 0; i < 10; ++i) {
append({value: i});
}
}
}
delegate: Item {
id: delegateItem
width: listView.width
height: 50
Rectangle {
id: dragRect
width: listView.width
height: 50
anchors.horizontalCenter: parent.horizontalCenter
anchors.verticalCenter: parent.verticalCenter
color: "salmon"
border.color: Qt.darker(color)
Text {
anchors.centerIn: parent
text: modelData
}
MouseArea {
id: …Run Code Online (Sandbox Code Playgroud) 更新,因为我找到了我发布的解决方案作为我自己的问题的答案:需要删除disableSelection()方法.这里的原帖可供参考,以防有人遇到同样的问题:
:::::::::::::::::::
我正在使用JQuery UI Sortable方法,我发现了Firefox和输入字段的一个奇怪的错误.出于某种原因,添加到可排序元素的输入字段在Firefox中无法单击.除非右键单击它们,否则无法关注它们.Chrome中不存在此问题.
请参阅JS Fiddle,请注意,如果您在Firefox中查看它,这只是一个问题.为了记录我在Firefox 33上,我也在Firefox 32上重现了这个:
这是小提琴的代码.它几乎完全匹配JQuery UI用于演示的内容,但添加的输入字段除外,用于演示此问题:
图书馆:
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.1/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.1/jquery-ui.js"></script>
Run Code Online (Sandbox Code Playgroud)
我的HTML:
<h4>An input outside of the sortable boxes works:</h4>
<input type="text" placeholder="this input works"/>
<br/>
<h4>But if you try to add an input field inside one of the sortable boxes, you cannot click it in Firefox.</h4>
<h6>Note that the markup for the sortable boxes is copied directly from jquery.com as is the corresponding CSS …Run Code Online (Sandbox Code Playgroud) 我正在开发Android应用程序,我正在使用拖放视图.
我在我的视图上实现了onLongClick(实际上使用带有1.5秒长点击阈值的onTouch)(屏幕截图中的圆圈).当检测到长按时,我会显示两个拖放区域(图像视图的onDragListener分别附加,绿色框位于屏幕截图中).
当我的视图被拖放到任一个拖放区域(调用ACTION_DROP)时,我的代码工作正常,但问题是,我还需要能够告诉我的圆圈何时掉落到拖放区域之外,这样我就可以重置了国家.在这种情况下,我没有从两个丢弃区域中的任何一个触发任何回调.我不认为我从使用startDrag方法的视图中看到了任何调用方法.
只有在将视图放到任何拖放区域之外后才能从logcat获取的是:
I/ViewRootImpl:报告丢弃结果:false
有没有办法从我的代码中检测到"drop result:false"?帮助将不胜感激!
截图链接如下:

----------更新11/21 ----------
在我第一次发布这个问题时,我仍然试图掌握高级概念,但现在我意识到我应该包含更多细节.
以下是我的应用中目前使用的一些代码段.顺便说一下,我在服务中使用那些视图 - 圆(锚)和绿框(dropRegions) - 而不是Activity,所以我使用WindowManager添加视图.
我仍然有同样的问题,而我没有得到的主要内容是,从未调用过ACTION_DRAG_ENTERED和ACTION_DRAG_EXITED.到目前为止,只有ACTION_DROP为我工作.我还缺少什么吗?
以下是代码的相关部分.
在长按圆圈时调用(在sandrstar的响应后稍微修改):
private void anchorOnLongClick(View view) {
Log.d("####", "LONG CLICK");
showAnchorDropRegion();
ClipData.Item item = new ClipData.Item((String) view.getTag());
ClipData data = new ClipData((String) view.getTag(),
new String[]{ClipDescription.MIMETYPE_TEXT_PLAIN}, item);
View.DragShadowBuilder shadowBuilder = new View.DragShadowBuilder(view);
view.startDrag(data, shadowBuilder, null, 0);
setupAnchorDropRegion();
showAnchorDropRegion();
}
Run Code Online (Sandbox Code Playgroud)
将拖动侦听器附加到绿色框:
/* set up the region where anchor can be drag-and-dropped */
private void setupAnchorDropRegion() {
ivDropRight = new ImageView(this);
ivDropRight.setImageDrawable(getResources().getDrawable(R.drawable.dropregion_normal));
ivDropRight.setOnDragListener(new View.OnDragListener() {
@Override …Run Code Online (Sandbox Code Playgroud) drag-and-drop ×10
android ×3
jquery ×3
delphi ×1
delphi-xe6 ×1
firefox ×1
html5 ×1
imageview ×1
java ×1
javascript ×1
jquery-ui ×1
libgdx ×1
listview ×1
motionevent ×1
pyqt ×1
pyside ×1
python ×1
qlistwidget ×1
qml ×1
qt ×1
tablerow ×1
touch ×1
visibility ×1