Convert to LazyVerticalStaggeredGrid, preparing add previews

This commit is contained in:
tarsin committed 2023-03-17 17:28:22 +08:00
1 parent 9b74e7fdec
commit 0b45c41a99
1 file changed
+46 -42
@@ -50,9 +50,10 @@ import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.lazy.staggeredgrid.LazyVerticalStaggeredGrid
import androidx.compose.foundation.lazy.staggeredgrid.StaggeredGridCells
import androidx.compose.foundation.lazy.staggeredgrid.StaggeredGridItemSpan
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.foundation.verticalScroll
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.ArrowBack
import androidx.compose.material.icons.filled.CloudDone
@@ -503,9 +504,7 @@ class GalleryDetailScene : BaseScene(), DownloadInfoListener {
GalleryDetailContent(
galleryInfo = gi,
galleryDetail = composeBindingGD,
modifier = Modifier
.nestedScroll(scrollBehavior.nestedScrollConnection)
.verticalScroll(rememberScrollState())
modifier = Modifier.nestedScroll(scrollBehavior.nestedScrollConnection)
)
} else {
Box(
@@ -529,45 +528,50 @@ class GalleryDetailScene : BaseScene(), DownloadInfoListener {
galleryDetail: GalleryDetail?,
modifier: Modifier
) {
Column(
LazyVerticalStaggeredGrid(
columns = StaggeredGridCells.Adaptive(160.dp),
modifier = modifier.padding(horizontal = dimensionResource(id = R.dimen.keyline_margin))
) {
GalleryDetailHeaderCard(
galleryInfo = galleryInfo,
galleryDetail = galleryDetail,
onInfoCardClick = ::onGalleryInfoCardClick,
onCategoryChipClick = ::onCategoryChipClick,
onUploaderChipClick = ::onUploaderChipClick,
modifier = Modifier
.fillMaxWidth()
.padding(vertical = dimensionResource(id = R.dimen.keyline_margin))
)
Row {
FilledTonalButton(
onClick = ::onDownloadButtonClick,
modifier = Modifier
.padding(horizontal = 4.dp)
.weight(1F)
) {
Text(text = downloadButtonText)
}
Button(
onClick = ::onReadButtonClick,
modifier = Modifier
.padding(horizontal = 4.dp)
.weight(1F)
) {
Text(text = readButtonText)
}
}
if (galleryDetail != null) {
BelowHeader(galleryDetail)
} else {
Box(
modifier = Modifier.fillMaxSize(),
contentAlignment = Alignment.Center
) {
CircularProgressIndicator()
item(span = StaggeredGridItemSpan.FullLine) {
Column {
GalleryDetailHeaderCard(
galleryInfo = galleryInfo,
galleryDetail = galleryDetail,
onInfoCardClick = ::onGalleryInfoCardClick,
onCategoryChipClick = ::onCategoryChipClick,
onUploaderChipClick = ::onUploaderChipClick,
modifier = Modifier
.fillMaxWidth()
.padding(vertical = dimensionResource(id = R.dimen.keyline_margin))
)
Row {
FilledTonalButton(
onClick = ::onDownloadButtonClick,
modifier = Modifier
.padding(horizontal = 4.dp)
.weight(1F)
) {
Text(text = downloadButtonText)
}
Button(
onClick = ::onReadButtonClick,
modifier = Modifier
.padding(horizontal = 4.dp)
.weight(1F)
) {
Text(text = readButtonText)
}
}
if (galleryDetail != null) {
BelowHeader(galleryDetail)
} else {
Box(
modifier = Modifier.fillMaxSize(),
contentAlignment = Alignment.Center
) {
CircularProgressIndicator()
}
}
}
}
}