Articles of 拖放

将拖动项目实现到屏幕边缘function

当项目在屏幕边缘附近(左侧或右侧)拖动时,我需要实现当前的选项卡更改。 拖放N拖放function和当前标签开关没有问题。 我只是不能正确处理这个事件 – 当拖动项目靠近屏幕的边缘。 你会怎么做? 我试过的: <FrameLayout android:id="@+id/left_toggle_area" android:layout_width="30dp" android:layout_height="fill_parent" android:layout_alignParentStart="true" android:layout_alignParentLeft="true"> </FrameLayout> <FrameLayout android:id="@+id/right_toggle_area" android:layout_width="30dp" android:layout_height="fill_parent" android:layout_alignParentEnd="true" android:layout_alignParentRight="true"> </FrameLayout> <GridView android:layout_width="match_parent" android:layout_height="match_parent" … /> 这个想法是当在切换区域拖动项目时以编程方式改变当前标签。 但事件DragEvent.ACTION_DRAG_ENTERED在该地区从来没有发生,因为(我相信) GridView占据了整个屏幕,只是与切换区域重叠。 当拖动开始事件被触发时,我已经尝试将这些区域放在前面。 但是这不起作用。 FrameLayout toggleView = (FrameLayout) v; toggleView.bringToFront(); toggleView.requestLayout(); toggleView.invalidate(); 如果有人遇到这样的问题,请分享您的经验。 或者也许还有另一个更好的解决scheme。 请给我一个提示。

防止将自定义mimetype拖放到EditText

我有一个自定义的MIMEtypes,我打算用于在应用程序中拖放应用程序对象。 这似乎是工作,但我发现EditText字段也接受放置操作。 我不想要这样的事情发生。 首先,我已经定义了这样的custome mimetypes: public static final String MIME_TYPE_MYNODE = "com.example.mockup/mynode"; 然后,在源对象的onTouch处理程序中,我有: @Override //—————————————————————————– public boolean onTouch (View v, MotionEvent e) { … else if (e.getAction() == MotionEvent.ACTION_MOVE) { String[] mimeTypes = {MIME_TYPE_MYNODE}; ClipData data = new ClipData ("Task Tamer Note", mimeTypes, new ClipData.Item ("unused")); View.DragShadowBuilder shadow = new View.DragShadowBuilder(this); Object localState = v; […]

在Android中的GridView中拖放

如何在Android GridView中实现拖放function。 任何人都可以提供同样的最好的链接?

Android:拖放问题

我正在为一个class级编写一个SMIL作曲程序,而且我正计划让canvas支持drap和drop,所以你可以放置图片和文本。 我已经通过例子看了一下,自己做了一些,但是当我去实现拖放在我的项目中,它不起作用。 以下是主要的代码: public class ComposerActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.composer); Button add = (Button)findViewById(R.id.addBtn); … add.setOnClickListener(mClick); … } OnClickListener mClick = new OnClickListener() { @Override public void onClick(View v){ if(v.getId() == R.id.addBtn) { FrameLayout fl = (FrameLayout)findViewById(R.id.Canvas); LayoutInflater inflater […]

如何将TextView拖动到正确的目标其他TextView

我已经给了我有完整的代码。 代码波纹pipe可以非常顺利地拖放,但它不像我需要的波纹pipe描述那样工作。 拖动数据是(苹果,Orage,球) 掉落目标位置是(A for,O for,B for) 所以,如果拖动“苹果”下降到“A为”将是正确的,并更新文本为“A苹果”和文本“苹果”在拖动将隐藏…但如果我们拖动“苹果”下降到“O for“或”B for“,将会因为”O for Orange“和”B for Ball“而失败。 基于下面的代码,我应该添加什么。 布局: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" android:padding="10dp" android:paddingLeft="50dp" android:paddingRight="50dp" > <TextView android:id="@+id/option_1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margin="5dp" android:background="@drawable/option" android:gravity="center" android:text="Apple" android:textStyle="bold" /> <TextView android:id="@+id/option_2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margin="5dp" android:background="@drawable/option" android:gravity="center" android:text="Orange" android:textStyle="bold" /> <TextView android:id="@+id/option_3" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margin="5dp" android:background="@drawable/option" android:gravity="center" […]

拖动视图时设置自定义锚点

我正在使用Android拖放API,并试图将拖影的锚点设置为在View中进行触摸的点。 默认行为是将锚定在View的中间。 我做了一些研究,似乎可以通过覆盖DragShadowBuilder类中的onProvideShadowMetrics (Point shadowSize, Point shadowTouchPoint)方法来DragShadowBuilder 。 从我的理解,如果我改变了shadowTouchPoint的x,y坐标,它应该修改拖动锚的坐标。 我做的是扩展DragShadowBuilder类如下所示: class EventDragShadowBuilder extends DragShadowBuilder { int touchPointXCoord, touchPointYCoord; public EventDragShadowBuilder() { super(); } public EventDragShadowBuilder(View view, int touchPointXCoord, int touchPointYCoord) { super(view); this.touchPointXCoord = touchPointXCoord; this.touchPointYCoord = touchPointYCoord; } @Override public void onProvideShadowMetrics(Point shadowSize, Point shadowTouchPoint) { shadowTouchPoint.set(touchPointXCoord, touchPointYCoord); super.onProvideShadowMetrics(shadowSize, shadowTouchPoint); } } 在我使用拖放的Fragment ,我创build了两个监听器来启动一个View的拖动事件: […]

在gridview中拖动项目

我有一个dynamic的行数和3列的网格。 在特定时刻只有3行可见。 在网格中,我可以有空单元格。 你有任何想法如何实现一个单元格视图的视图拖放function? 我想要能够拖动空单元格中的项目。

在两个片段之间拖放?

我有一个特殊的要求,我需要拖动一个元素在一个屏幕上,然后另一个片段变得可见,我可以放下拖动的视图。 达到这个目标的最好方法是什么? 我不知道如何实现这两个碎片之间的行为。提前感谢!

将图标拖放到主屏幕

更新:为了理解我的问题,这里是我需要实现的:将应用程序抽屉中的图标拖到主屏幕( 如果可能的话不在GridView中) 旧的(这只是为了学习如何工作): 我试图实现拖动可点击的图标从一个ListView到没有容器( Listview or Gridview… )的自customView在同一个活动或另一个,这里是一个图片,让你更多地了解: 但是当我把图标放在正确的区域, 我没有看到对象 ,在日志中我看到: I/ViewRootImpl﹕ Reporting drop result: true 在这里我的代码: class MyDragListener implements View.OnDragListener { @Override public boolean onDrag(View v, DragEvent event) { int action = event.getAction(); switch (event.getAction()) { … case DragEvent.ACTION_DROP: LinearLayoutAbsListView itemo = (LinearLayoutAbsListView)findViewById(R.id.paneko); View child = getLayoutInflater().inflate(R.layout.list_item, null); itemo.addView(child); break; case DragEvent.ACTION_DRAG_ENDED: default: break; […]

PopupWindow不响应拖放事件

我的应用程序中有一个菜单图标。 当我拖放一些东西,它会显示一个popup窗口。 我需要延长我的拖放到这个PopupWindow 。 我正在做这个如下。 如图所示创build一个PopupWindow View popupView = View.inflate(anchorView.getContext(), R.layout.layout_popup, null); PopupWindow popUpWindow = new PopupWindow(popupView, WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.WRAP_CONTENT); 并如图所示设置dragListener popupView.setOnDragListener(new OnDragListener() { @Override public boolean onDrag(View view, DragEvent dragEvent) { switch (dragEvent.getAction()) { case DragEvent.ACTION_DRAG_STARTED: Log.d("Drag", "ACTION_DRAG_STARTED"); break; case DragEvent.ACTION_DRAG_ENDED: Log.d("Drag", "ACTION_DRAG_ENDED"); break; case DragEvent.ACTION_DRAG_ENTERED: Log.d("Drag", "ACTION_DRAG_ENTERED"); break; case DragEvent.ACTION_DRAG_EXITED: Log.d("Drag", "ACTION_DRAG_EXITED"); break; case […]