Я создал библиотеку Compose, но думаю, что реализация необычнаяAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Я создал библиотеку Compose, но думаю, что реализация необычная

Сообщение Anonymous »

Я создал центральный масштаб Carousel Composable. Но я чувствую, что это не очень обычное
< /p>

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

        CenterZoomedCarousel(
items = pokemons,
spacing = 4.dp,
itemSize = itemSize,
zoomItemSize = itemSize * 3f,
modifier = Modifier.height(200.dp),
scrollType = kr.co.carousel.CarouselScrollType.INFINITE
) { carouselItemState ->
val item = carouselItemState.item
if (carouselItemState.isFocus) name = item.second
Card {
Column(
modifier = Modifier
.background(Color.White)
.padding(12.dp)
) {
Image(
painter = rememberAsyncImagePainter(item.first),
contentDescription = item.second,
modifier = carouselItemState.animatedModifier
)
}
}
}

@Composable
fun  CenterZoomedCarousel(
...
CarouselLazyRow(
modifier = Modifier
.fillMaxWidth(),
lazyCarouselState = carouselState,
verticalAlignment = Alignment.CenterVertically,
horizontalArrangement = Arrangement.spacedBy(spacing)
) {
carouselItems(items, scrollType) { item, isCurrentPage ->
val targetSize = remember(isCurrentPage) {
if (isCurrentPage) zoomItemSize else itemSize
}
val targetAlpha = remember(isCurrentPage) {
if (isCurrentPage) 1f else unfocusedAlpha
}
val animatedSize by animateDpAsState(
targetValue = targetSize,
label = "animatedSize",
finishedListener = { carouselState.setAnimationEnd(true) }
)
val animatedAlpha by animateFloatAsState(targetAlpha, label = "animatedAlpha")

content(
CarouselItemState(
item,
Modifier
.size(animatedSize)
.alpha(animatedAlpha),
isCurrentPage
)
)
}
}

этот составной объект возвращает класс данных:

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

data class CarouselItemState(
val item: T,
val animatedModifier: Modifier,
val isFocus: Boolean,
)
он ​​даже предоставляет модификатор
из-за чего у меня возникает ощущение, что эта реализация может не соответствовать общепринятым практикам.
Вам такой подход тоже покажется странным?
Я буду признателен за отзывы о том, кажется ли это нетрадиционным и

Подробнее здесь: https://stackoverflow.com/questions/793 ... is-unusual
Ответить

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

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

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

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

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