Djaka Pradana Jaya Priambudi
02/09/2023, 6:38 PMfun RowScope.Item() {}
The recomposition doesn't triggered (tested by adding a breakpoint and console log)
But if I remove the extension to this
fun Item() {}
It works
Sample code in thread@Composable
internal fun Test(compose: @Composable () -> Unit, xml: @Composable () -> Unit) {
var isFirstItemSelected by remember { mutableStateOf(true) }
Column {
Row(Modifier.fillMaxWidth()) {
Item(
isSelected = isFirstItemSelected,
) { isFirstItemSelected = true }
Item(
isSelected = !isFirstItemSelected
) { isFirstItemSelected = false }
}
}
}
@Composable
fun Item(
isSelected: Boolean = false,
modifier: Modifier = Modifier,
onClick: () -> Unit
) {
Surface(
modifier
.selectable(
selected = isSelected,
onClick = onClick
)
.defaultMinSize(minWidth = 48.dp, minHeight = 48.dp)
) {
Column {
Text("Item", color = if (isSelected) MaterialTheme.colorScheme.primary else MaterialTheme.colorScheme.onBackground)
}
}
}
@Composable
internal fun Test(compose: @Composable () -> Unit, xml: @Composable () -> Unit) {
var isFirstItemSelected by remember { mutableStateOf(true) }
Column {
Row(Modifier.fillMaxWidth()) {
Item(
isSelected = isFirstItemSelected,
) { isFirstItemSelected = true }
Item(
isSelected = !isFirstItemSelected
) { isFirstItemSelected = false }
}
}
}
@Composable
fun RowScope,Item(
isSelected: Boolean = false,
modifier: Modifier = Modifier,
onClick: () -> Unit
) {
Surface(
modifier
.selectable(
selected = isSelected,
onClick = onClick
)
.defaultMinSize(minWidth = 48.dp, minHeight = 48.dp)
) {
Column {
Text("Item", color = if (isSelected) MaterialTheme.colorScheme.primary else MaterialTheme.colorScheme.onBackground)
}
}
}
Alex Vanyo
02/09/2023, 6:52 PM1.4.0-beta01
release?Djaka Pradana Jaya Priambudi
02/09/2023, 7:29 PMAlex Vanyo
02/09/2023, 7:35 PM1.4.0-beta01
for the non-compiler versions, 1.4.1
for the compiler version1.4.1
.Djaka Pradana Jaya Priambudi
02/09/2023, 7:38 PM