Relay插件导入Figma UI包后,无法修改build目录下LoginPage.kt怎么办?
解决方案
核心原因
build目录下的文件是Relay插件根据Figma设计自动生成的,每次项目构建都会被重新覆盖,直接修改这里的文件不仅无效,所有改动还会在下次构建时丢失。
正确修改步骤
1. 回到Figma绑定回调标识
在Figma的Relay插件中,为矢量图形设置onTap时,不要写具体逻辑,而是指定一个回调名称(比如onLoginButtonTap),然后重新导出UI包到Android Studio。此时生成的LoginPage.kt会包含这个回调参数,但不会包含业务逻辑。
2. 在业务目录创建自定义实现
在项目的src/main/kotlin下的业务包中,新建一个自定义容器文件(比如CustomLoginPage.kt),在其中引用Relay生成的LoginPage组件,并实现回调逻辑:
import com.yourproject.relay.generated.LoginPage @Composable fun CustomLoginPage( onLoginCompleted: () -> Unit ) { LoginPage( onLoginButtonTap = { // 在这里编写你的登录逻辑:比如校验输入、调用接口等 onLoginCompleted() } ) }
3. 替换引用使用自定义容器
把项目中原本直接引用LoginPage的地方,换成CustomLoginPage,这样所有业务逻辑都在你可控的非生成目录中,不会被Relay的构建过程覆盖。
4. 调整UI结构的正确方式
如果需要修改组件的UI布局,不要动build目录的代码,直接回到Figma中调整设计,再重新导出UI包到Android Studio,Relay会自动更新生成的组件代码。
内容的提问来源于stack exchange,提问作者poxantidote
相关产品推荐
相关产品推荐

