这是由于旋转会更改视觉层次结构而导致的。 为了解决这个问题,可以在旋转之前将视图的父视图背景设置为与卡片的背景相同,然后在旋转后将其重置为透明。 这样可以将阴影保持在旋转后。代码示例如下:
//在旋转之前将父视图背景设置为卡片的背景 cardview.getParent().setBackground(cardview.getBackground()); //旋转卡片 cardview.setRotation(180); //重置父视图背景为透明 cardview.getParent().setBackground(new ColorDrawable(Color.TRANSPARENT));