Сбой после перехода на API-интерфейсы Inиндикации и Ripple в LargeFloatingActionButtonCustom.Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Сбой после перехода на API-интерфейсы Inиндикации и Ripple в LargeFloatingActionButtonCustom.

Сообщение Anonymous »

Недавно я перешел на API Inиндикации и Ripple согласно официальной документации, но после миграции мое приложение вылетает, когда я нажимаю LargeFloatingActionButtonCustom во второй раз, тогда как при первом нажатии действие и пульсация происходят нормально (только когда включен = true).
Вот журнал ошибок, который я получаю:

Код: Выделить всё

FATAL EXCEPTION: main
Process: br.com.apima.comandaappdroid, PID: 18541
java.lang.IllegalStateException: Could not find delegate: androidx.compose.material.ripple.AndroidRippleNode@e577fcf
at androidx.compose.ui.node.DelegatingNode.undelegate(DelegatingNode.kt:181)
at androidx.compose.material3.DelegatingThemeAwareRippleNode.removeRipple(Ripple.kt:362)
...
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1348)
at android.view.Choreographer.doCallbacks(Choreographer.java:952)
at android.view.Choreographer.doFrame(Choreographer.java:878)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1322)
После перехода на новые API-интерфейсы Inиндикации и Ripple я ожидал, что мой пользовательский LargeFloatingActionButtonCustom продолжит работать, как и раньше, но вместо этого он вылетает при втором нажатии (включено = true).
Вот компонуемый код, который я использую:

Код: Выделить всё

@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun LargeFloatingActionButtonCustom(
icon: ImageVector,
contentDescription: String,
onClick: () -> Unit,
enabled: Boolean = true
) {
CompositionLocalProvider(
LocalRippleConfiguration provides
if (enabled) LocalRippleConfiguration.current
else null
) {
LargeFloatingActionButton(
modifier = Modifier.size(52.dp),
shape = CircleShape,
containerColor = if (enabled) MaterialTheme.colorScheme.primaryContainer else MaterialTheme.colorScheme.surfaceDim,
onClick = {
if (enabled) onClick.invoke()
},
) {
Icon(
imageVector = icon,
contentDescription = contentDescription,
tint = if (enabled)
LocalContentColor.current.copy(alpha = LocalContentColor.current.alpha)
else DarkGray
)
}
}
}

Версии среды:
  • AGP: 8.4.2
  • Kotlin: 1.9.0
  • Ядро KTX: 1.13.1
  • Состав: 2024.09.01
  • Материал3: 1.3.0
Я попытался настроить LocalRippleConfiguration, но ошибка не устранена. Как я могу решить эту проблему?

Подробнее здесь: https://stackoverflow.com/questions/789 ... tionbutton
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»