Fix some rendering issues
This commit is contained in:
@@ -6,12 +6,10 @@ import androidx.compose.foundation.layout.Column
|
|||||||
import androidx.compose.foundation.layout.Row
|
import androidx.compose.foundation.layout.Row
|
||||||
import androidx.compose.foundation.layout.aspectRatio
|
import androidx.compose.foundation.layout.aspectRatio
|
||||||
import androidx.compose.foundation.layout.fillMaxHeight
|
import androidx.compose.foundation.layout.fillMaxHeight
|
||||||
import androidx.compose.foundation.layout.fillMaxSize
|
|
||||||
import androidx.compose.foundation.layout.fillMaxWidth
|
import androidx.compose.foundation.layout.fillMaxWidth
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.layout.wrapContentHeight
|
import androidx.compose.foundation.layout.wrapContentHeight
|
||||||
import androidx.compose.foundation.lazy.grid.GridCells
|
import androidx.compose.foundation.lazy.grid.GridCells
|
||||||
import androidx.compose.foundation.lazy.grid.GridItemSpan
|
|
||||||
import androidx.compose.foundation.lazy.grid.LazyVerticalGrid
|
import androidx.compose.foundation.lazy.grid.LazyVerticalGrid
|
||||||
import androidx.compose.material3.HorizontalDivider
|
import androidx.compose.material3.HorizontalDivider
|
||||||
import androidx.compose.material3.OutlinedCard
|
import androidx.compose.material3.OutlinedCard
|
||||||
@@ -48,7 +46,11 @@ fun App(modifier: Modifier = Modifier) {
|
|||||||
val verticalClues = remember { game.verticalClues.map { DisplayClue(it) } }
|
val verticalClues = remember { game.verticalClues.map { DisplayClue(it) } }
|
||||||
Row(modifier = modifier) {
|
Row(modifier = modifier) {
|
||||||
PuzzleGrid(modifier = Modifier.aspectRatio(1f).weight(0.6f).fillMaxHeight(), game.grid)
|
PuzzleGrid(modifier = Modifier.aspectRatio(1f).weight(0.6f).fillMaxHeight(), game.grid)
|
||||||
PuzzleClues(modifier = Modifier.weight(0.4f).fillMaxHeight(), horizontalClues, verticalClues)
|
PuzzleClues(
|
||||||
|
modifier = Modifier.padding(start = 16.dp).weight(0.4f).fillMaxHeight(),
|
||||||
|
horizontalClues,
|
||||||
|
verticalClues
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -88,56 +90,38 @@ fun PuzzleClues(
|
|||||||
) {
|
) {
|
||||||
Column(modifier = modifier) {
|
Column(modifier = modifier) {
|
||||||
LazyVerticalGrid(
|
LazyVerticalGrid(
|
||||||
modifier = Modifier.fillMaxSize(),
|
modifier = Modifier.fillMaxWidth().wrapContentHeight(),
|
||||||
columns = GridCells.Fixed(4)
|
columns = GridCells.Fixed(4)
|
||||||
) {
|
) {
|
||||||
for (clue in horizontalClues.filter { it.isActive }) {
|
for (clue in horizontalClues) {
|
||||||
item {
|
item {
|
||||||
HorizontalClue(
|
HorizontalClue(
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
|
.alpha(if (clue.isActive) 1f else 0.2f)
|
||||||
.padding(8.dp)
|
.padding(8.dp)
|
||||||
.clickable { clue.isActive = false },
|
.clickable { clue.isActive = false },
|
||||||
clue = clue.clue
|
clue = clue.clue
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (clue in horizontalClues.filter { !it.isActive }) {
|
|
||||||
item {
|
|
||||||
HorizontalClue(
|
|
||||||
modifier = Modifier
|
|
||||||
.alpha(0.5f)
|
|
||||||
.padding(8.dp)
|
|
||||||
.clickable { clue.isActive = true },
|
|
||||||
clue = clue.clue
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
item(span = { GridItemSpan(maxLineSpan) }) {
|
|
||||||
HorizontalDivider()
|
HorizontalDivider()
|
||||||
}
|
LazyVerticalGrid(
|
||||||
for (clue in verticalClues.filter { it.isActive }) {
|
modifier = Modifier.fillMaxWidth().wrapContentHeight(),
|
||||||
|
columns = GridCells.Fixed(8)
|
||||||
|
) {
|
||||||
|
for (clue in verticalClues) {
|
||||||
item {
|
item {
|
||||||
VerticalClue(
|
VerticalClue(
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
|
.alpha(if (clue.isActive) 1f else 0.2f)
|
||||||
.padding(8.dp)
|
.padding(8.dp)
|
||||||
.aspectRatio(0.3333f)
|
.aspectRatio(0.33333334f)
|
||||||
.clickable { clue.isActive = false },
|
.clickable { clue.isActive = false },
|
||||||
clue = clue.clue
|
clue = clue.clue
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (clue in verticalClues.filter { !it.isActive }) {
|
|
||||||
item {
|
|
||||||
VerticalClue(
|
|
||||||
modifier = Modifier
|
|
||||||
.alpha(0.5f)
|
|
||||||
.padding(8.dp)
|
|
||||||
.aspectRatio(0.3333f)
|
|
||||||
.clickable { clue.isActive = true },
|
|
||||||
clue = clue.clue
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -179,7 +163,7 @@ fun HorizontalClue(modifier: Modifier = Modifier, clue: HorizontalClue) {
|
|||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun VerticalClue(modifier: Modifier = Modifier, clue: SameColumnClue<*, *>) {
|
fun VerticalClue(modifier: Modifier = Modifier, clue: SameColumnClue<*, *>) {
|
||||||
OutlinedCard(modifier) {
|
OutlinedCard(modifier.aspectRatio(0.5f)) {
|
||||||
Column {
|
Column {
|
||||||
DrawItem(modifier = Modifier.weight(1f), clue.a)
|
DrawItem(modifier = Modifier.weight(1f), clue.a)
|
||||||
DrawItem(modifier = Modifier.weight(1f), clue.b)
|
DrawItem(modifier = Modifier.weight(1f), clue.b)
|
||||||
|
|||||||
@@ -8,6 +8,8 @@ import androidx.compose.ui.text.font.FontFamily
|
|||||||
import androidx.compose.ui.text.font.FontStyle
|
import androidx.compose.ui.text.font.FontStyle
|
||||||
import androidx.compose.ui.text.font.FontWeight
|
import androidx.compose.ui.text.font.FontWeight
|
||||||
import androidx.compose.ui.text.platform.Font
|
import androidx.compose.ui.text.platform.Font
|
||||||
|
import androidx.compose.ui.unit.DpSize
|
||||||
|
import androidx.compose.ui.unit.dp
|
||||||
import androidx.compose.ui.window.Window
|
import androidx.compose.ui.window.Window
|
||||||
import androidx.compose.ui.window.WindowPlacement
|
import androidx.compose.ui.window.WindowPlacement
|
||||||
import androidx.compose.ui.window.application
|
import androidx.compose.ui.window.application
|
||||||
@@ -27,7 +29,8 @@ fun main() = application {
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
val windowState = rememberWindowState(
|
val windowState = rememberWindowState(
|
||||||
placement = WindowPlacement.Floating
|
placement = WindowPlacement.Floating,
|
||||||
|
size = DpSize(1200.dp, 800.dp)
|
||||||
)
|
)
|
||||||
|
|
||||||
Window(
|
Window(
|
||||||
|
|||||||
Reference in New Issue
Block a user