往往在项目中,需要定义一些公用的样式.最近需要对一个用compose编写的项目进行点击效果的自定义,需要运用到项目全局中.经过学习和了解,在这里有两种方法可以实现,暂时记录一下.
方法一:扩展modifier,自定义一个modifier的函数
这种方法主要是将modifier扩展出一个新函数,然后在需要用到的地方调用该函数,示例代码如下
其中MutableInteractionSource是对其互动状态的监听,具体可以在开发者文档中了解,可以调用其 InteractionSource.collectIsPressedAsState()获取按钮状态,通过其状态的不同设置按钮的背景及颜色等,调用的示例如下:
方法二: 利用MaterialTheme主题
MaterialTheme主题会提供一些默认的效果,同时也会提供api修改默认效果,达到自定义的目的.在函数最外层利用MaterialTheme主题同时自定义一些效果,用MaterialTheme主题提供的API将其修改即可,示例代码如下
CompositionLocalProvider即为修改默认效果的API,可修改的参数如下图,详细可以自己查开发者文档
在这里我修改的RippleTheme,主要是对与界面交互过程中一些透明度的修改,比如按钮点击效果,自定义的RipplerTheme如下
这里我只改了pressedAlpha,即按压的透明度.
后记:已经四年没有做一些笔记,最近恰好时间充足,也在尝试一些新的东西,沉淀自己,共勉之,如果有更好的方法也欢迎交流