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直接返回即可。