Launcher3禁止拖动和删除

1、删除操作是由长按时间触发,所以我们只要在Launcher的onLongClick(View v)方法中直接返回就可以。如果是部分禁止,可以通过v获取到ItemInfo,getTag中包含类别、位置和类名,从中过滤即可。

if (v.getTag() instanceof ItemInfo) {
            ItemInfo info = (ItemInfo) v.getTag();
            longClickCellInfo = new CellLayout.CellInfo(v, info);
            itemUnderLongClick = longClickCellInfo.cell;
            resetAddInfo();
        }

2、单纯禁止自身拖动跟删除同理,只要屏蔽了长按事件就能满足要求,但不能防止其他Item 拖动过程中将其挤走。

图标交换位置的操作是CellLayout中的performReorder中进行,只要将变量finalSolution变成null直接返回即可。

你可能感兴趣的:(Launcher3禁止拖动和删除)