Skip to content

focusable card

milan jurkulák edited this page May 2, 2024 · 1 revision

//tvlib/org.mjdev.tvlib.ui.components.complex/FocusableCard

FocusableCard

[androidJvm]\

@Composable

fun FocusableCard(item: Any? = null, modifier: Modifier = Modifier, contentScale: ContentScale = ContentScale.Crop, scale: CardScale = CardDefaults.scale(), shape: CardShape = CardDefaults.shape(), textColor: Color = Color.White, textBackgroundUnselected: Color = Color.DarkGray.copy(alpha = 0.5f), textBackgroundSelected: Color = Color.Green.copy(alpha = 0.5f), colors: CardColors = CardDefaults.colors(), border: CardBorder = CardDefaults.colorFocusBorder(Color.Green), glow: CardGlow = CardDefaults.colorFocusGlow(Color.Green), showTitle: Boolean = true, placeholder: @Composable() -> Unit = { Image( painter = painterResource(R.drawable.broken_image), contentDescription = "", contentScale = contentScale ) }, imageRenderer: @Composable() -> Unit = { ImageAny( modifier = Modifier.fillMaxSize(), src = (item as? ItemWithImage<>)?.image, contentDescription = (item as? ItemWithDescription<>)?.description?.toString(), contentScale = contentScale, placeholder = placeholder ) }, focused: Boolean = isEditMode(), focusRequester: FocusRequester = rememberFocusRequester(item), focusState: MutableState<FocusState> = rememberFocusState( item, FocusHelper(focused) ), onFocus: (item: Any?, fromUser: Boolean) -> Unit? = null, onFocusChange: (state: FocusState) -> Unit = { state -> if (state.isFocused || state.hasFocus) { // todo focused from user ? onFocus?.invoke(item, false) } }, titlePadding: PaddingValues = PaddingValues(8.dp), cardWidth: Dp = computeCardWidth(), aspectRatio: Float = 16f / 9f, isEdit: Boolean = isEditMode(), onClick: (item: Any?) -> Unit? = null)

Clone this wiki locally