我把一个material icon存储在一个数据类中,如下所示:
import androidx.compose.ui.graphics.vector.ImageVector
data class Item(
val icon: ImageVector
)
val item = Item(Icons.Filled.Send)
稍后将该项目传递给一个可组合对象,在该对象中使用VectorPainter进行绘制
如何将ImageVector旋转90度?理想情况下,这将产生一个ImageVector,我仍然可以存储在数据类中。
3条答案
按热度按时间js81xvg61#
可以使用**
rotate
**修饰符:类似于:
您可以添加一个条件来实现旋转和非旋转图标。
类似于:
368yc8dk2#
正如我从评论中得到的,你的Composable没有修饰符参数,这不是一个好的设计。每一个可组合的,即使你不会马上使用它,应该总是有一个修饰符参数。
https://chrisbanes.me/posts/always-provide-a-modifier/
在过去的一年左右,我看到了很多看起来很棒的可组合,但它们有一个致命的缺陷:它们不会暴露修饰符:修改器参数。
如果你不想读整篇文章,TL;这篇博客文章的DR是:
你写的任何发出布局的组合(即使是一个简单的Box),都应该有一个修饰符:修改器参数,然后在布局中使用该参数。
即使Composable没有修饰符参数,您也可以首先将旋转参数添加到
Item
数据类然后将没有Modifier参数的Composable Package 为
imageVector.root.rotation
将rotation
暴露为不可变参数,您不能更改也不能暴露IconVector的路径,如果这是原因,则可以通过矩阵进行旋转。fhg3lkii3#
您可以使用“ImageVector”类提供的“rotate”方法。例如: