如何更改/删除项目拖动突出显示?我正在使用 ItemTouchHelper ,我知道我需要使用 onChildDraw 方法做一些事情,但我不想覆盖整个 ACTION_STATE_DRAG 事件,只需要影响拖动项目时出现的灰色框架
我拥有的: gray frame
编辑:我注意到框架没有出现在Lollipop之前的设备上,所以也许我只需要设置一些主题强调颜色,但我找不到合适的选择器(尝试 colorControlActivated 和 colorControlHighlight )
答案 0 :(得分:3)
我解决了我的问题。那个灰色的框架只是一个元素的高度,即表示拖动的简单阴影(当你拿起一个要拖动的元素时,它会变得高于其他元素,所以它有一个阴影;我正在这样思考并且是正确的)。所以我设置EXTRA_LIBS=
并摆脱它。完整的代码在这里:
/path/to/my_new_openssl_dir/lib/libssl.dylib /path/to/my_new_openssl_dir/lib/libcrypto.dylib
或者更好地在自定义适配器中执行此操作
答案 1 :(得分:0)
覆盖onChildDrawOver()
代替onChildDraw()
,onChildDraw()
用于绘制背景,onChildDrawOver()
用于绘制前景,请尝试以下代码:
@Override
public void onChildDrawOver(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) {
super.onChildDrawOver(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive);
if (actionState == ItemTouchHelper.ACTION_STATE_DRAG) {
View itemView = viewHolder.itemView;
c.save();
c.clipRect(itemView.getLeft() + dX, itemView.getTop() + dY, itemView.getRight() + dX, itemView.getBottom() + dY);
c.translate(itemView.getLeft() + dX, itemView.getTop() + dY);
// draw the frame
c.drawColor(0x88888888);
c.restore();
}
}