chanjungskim
12/07/2022, 11:38 AMRaphael TEYSSANDIER
12/07/2022, 11:44 AMScope
, what’s your container ?chanjungskim
12/07/2022, 11:46 AMchanjungskim
12/07/2022, 11:46 AMRaphael TEYSSANDIER
12/07/2022, 11:47 AMRaphael TEYSSANDIER
12/07/2022, 11:48 AMRaphael TEYSSANDIER
12/07/2022, 11:48 AMchanjungskim
12/07/2022, 12:06 PMchanjungskim
12/07/2022, 12:07 PM@Preview(showBackground = true, widthDp = 500)
@Composable
fun PreviewEventBanner() {
val eventItem = EventBannerData(
name = "이벤트 배너 프리뷰 테스트",
imageUrl = "<https://www.hillspet.com/content/dam/cp-sites/hills/hills-pet/en_us/exported/dog-care/new-pet-parent/images/golden-retriever-puppy-running-outside.jpg>",
redirectUrl = "<https://iam-iam.com>"
)
val eventItems = listOf(eventItem, eventItem, eventItem, eventItem, eventItem)
EventBanner(
modifier = Modifier
.fillMaxSize()
.align(Alignment.CenterHorizontally)
.aspectRatio(1.2f)
.clip(RoundedCornerShape(20.dp)),
alignment = Alignment.CenterHorizontally,
eventItems = eventItems
)
}
chanjungskim
12/07/2022, 12:08 PMBox {
EventBanner(
modifier = Modifier
.fillMaxSize()
.align(Alignment.CenterHorizontally)
.aspectRatio(1.2f)
.clip(RoundedCornerShape(20.dp)),
alignment = Alignment.CenterHorizontally,
eventItems = eventItems
)
}
chanjungskim
12/07/2022, 12:11 PM@OptIn(ExperimentalPagerApi::class)
@Composable
fun EventBanner(
modifier: Modifier,
eventItems: List<EventBannerData>
) {
val pagerState = rememberPagerState()
Box(
modifier = modifier
){
HorizontalPager(
count = eventItems.size,
state = pagerState,
modifier = Modifier.fillMaxSize()
) { index ->
EventBannerItem(
modifier = Modifier
.fillMaxSize(),
eventItem = eventItems[index]
)
}
HorizontalPagerIndicator(
modifier = Modifier.padding(16.dp),
pagerState = pagerState
)
}
}
Raphael TEYSSANDIER
12/07/2022, 12:42 PM