我正在使用 Jetpack Compose 在 Android 中实现自定义设计系统,并且我想限制特定的使用drawables以保持一致性和设计完整性。具体来说,我想限制drawables仅使用 Microsoft 开发的Fluent 图标drawables,这些图标在 Android Studio 中共享。
在我的组件中,我定义了接受图标为 的属性drawables。但是,我想将这些属性限制为仅接受 Fluent 图标,并且不允许用户传递任何整数或任何其他可绘制对象。
如何在我的定制设计系统中实现此限制?我应该使用注释处理还是实现一个自定义类来检查Fluent 图标?或者有更好的方法来实现这一目标吗?
任何见解或指导将不胜感激。先感谢您!
为什么 Jetpack Compose 提供单独的按钮类型(例如OutlinedButton和 )TextButton,而不是将按钮样式作为参数传递给单个 Button 类型?
我知道这将有助于我们更好的代码组织和可维护性,并且还可以更容易地直接从名称来理解组件的用途,而不是通过带有一堆参数的通用名称!
这个问题不仅仅是关于按钮,而是关于为什么 Jetpack Compose 为不同的视觉样式提供多个可组合函数,而不是提供可以使用样式参数进行自定义的单个基本可组合函数的设计决策。
因为最后,如果我们看到这些组件的代码,您会看到它正在使用不同的参数调用基本组件:
@Composable
fun OutlinedButton(
onClick: () -> Unit,
modifier: Modifier = Modifier,
enabled: Boolean = true,
shape: Shape = ButtonDefaults.outlinedShape,
colors: ButtonColors = ButtonDefaults.outlinedButtonColors(),
elevation: ButtonElevation? = null,
border: BorderStroke? = ButtonDefaults.outlinedButtonBorder,
contentPadding: PaddingValues = ButtonDefaults.ContentPadding,
interactionSource: MutableInteractionSource = remember { MutableInteractionSource() },
content: @Composable RowScope.() -> Unit
) =
Button(
onClick = onClick,
modifier = modifier,
enabled = enabled,
shape = shape, …Run Code Online (Sandbox Code Playgroud) 请让我知道错误是什么以及如何修复它。请帮我!E/ImeBackDispatcher:未找到 Ime 回调。忽略 unregisterReceivedCallback。回调ID:236542860
请让我知道错误是什么以及如何修复它。请帮我!