那个牌子的指甲剪好用:Android 深入研究拖放功能Launcher(一)
来源:百度文库 编辑:中财网 时间:2024/04/27 03:20:00
1.首先直观感受什么时候开始拖放?我们长按桌面一个应用图标或者控件的时候拖放就开始了,包括在all app view中长按应用图标,下面就是我截取的拖放开始的代码调用堆栈
java代码:
java代码:
我上面只写出关键代码,首先是获取被拖动的对象v.getTag(),Tag什么时候被设置进去的了
java代码:
java代码:
- at com.android.launcher2.DragController.startDrag
- at com.android.launcher2.Workspace.startDrag
- at com.android.launcher2.Launcher.onLongClick
- at android.view.View.performLongClick
- at android.widget.TextView.performLongClick
- at android.view.View$CheckForLongPress.run
- at android.os.Handler.handleCallback
- at android.os.Handler.dispatchMessage
- at android.os.Looper.loop
java代码:
- if (!(v instanceof CellLayout)) {
- v = (View) v.getParent();
- }
- //获取桌面CellLayout上一个被拖动的对象
- CellLayout.CellInfo cellInfo = (CellLayout.CellInfo) v.getTag();
- if (mWorkspace.allowLongPress()) {
- if (cellInfo.cell == null) {
- } else {
- if (!(cellInfo.cell instanceof Folder)) {
- //调用Workspace.startDrag处理拖动
- mWorkspace.startDrag(cellInfo);
- }
- }
- }
我上面只写出关键代码,首先是获取被拖动的对象v.getTag(),Tag什么时候被设置进去的了
java代码:
- public boolean onInterceptTouchEvent(MotionEvent ev) {
- if (action == MotionEvent.ACTION_DOWN) {
- boolean found = false;
- for (int i = count - 1; i >= 0; i--) {
- final View child = getChildAt(i);
- if ((child.getVisibility()) == VISIBLE || child.getAnimation() != null) {
- child.getHitRect(frame);
- //判断区域是否在这个子控件的区间,如果有把child信息赋给mCellInfo
- if (frame.contains(x, y)) {
- final LayoutParams lp = (LayoutParams) child.getLayoutParams();
- cellInfo.cell = child;
- cellInfo.cellX = lp.cellX;
- cellInfo.cellY = lp.cellY;
- cellInfo.spanX = lp.cellHSpan;
- cellInfo.spanY = lp.cellVSpan;
- cellInfo.valid = true;
- found = true;
- mDirtyTag = false;
- break;
- }
- }
- }
- mLastDownOnOccupiedCell = found;
- if (!found) {
- //没有child view 说明没有点击桌面图标项
- cellInfo.cell = null;
- }
- setTag(cellInfo);
- }
尤歌朵拉同盟深入研究
深入研究GHOST
如何深入研究网页木马
鼠标拖放功能实效,怎么恢复??
对美容又深入研究的请进
加载宏,单元格拖放功能,覆盖前警告的用法
关于人体体液的一点深入性研究
湛江市那个医院对肝病有深入研究
paranoid android中文歌词
虚拟机和主机之间为什么不能实现拖放功能?虚拟机中的文件共享怎样应用?
请教大侠,我的电脑系统怎么没有拖放能功能?
radiohead 的 Paranoid Android 中文翻译
翻译"情况随着研究的深入而逐渐明了"
高手们,对本草纲目里用稻草灰治疗烧伤有没有深入研究过,
请问有对"期货股指"深入研究的高手吗?(越详细越好)
请问有对"股期"深入研究的高手吗?(越详细越好)
对Windows的启动项有深入研究的来解答
我想知道我国有什么机构对电动车的生产工艺做了深入的研究?
历史上的事件为什么我们深入研究后就会有很多的疑点呢?
农业大学生为什么不愿去县乡基层单位或深入田间地头搞研究?
对历史理论的抽象性概括大于历史事实的深入性研究?是否正确
生物科学有没有实际操作?和生物技术比哪个一个更能深入研究基因?
能否提供关于阐述海关精神基本内涵的论文或其他深入研究的文章
鼠标拖放失灵是什么原因?