我为 Modifier 创建了一个扩展函数,单击时将向用户显示 BalloonPopup。我为此函数使用 @Composable 标签,因为我将在气球内显示的内容也是 @Composable。然而编译器给了我以下警告;
“修饰工厂函数不应标记为@Composable,而应使用组合”
我还应用了建议的更改,但是当用户单击视图时,气球根本没有显示。
我的问题是;
以下是我在应用建议之前和之后使用的函数的代码;
前:
@Composable
fun Modifier.setPopup(enabled: Boolean = false, content: @Composable BoxScope.() -> Unit): Modifier {
if (enabled) {
var anchorOffset by remember { mutableStateOf<LayoutCoordinates?>(null) }
var showTooltip by remember { mutableStateOf(false) }
if (showTooltip) {
BalloonPopup(
onDismissRequest = {
showTooltip = false
},
content = content,
anchorCoordinates = anchorOffset
)
} …Run Code Online (Sandbox Code Playgroud)