feat: 待办列表滚动条的颜色

This commit is contained in:
Super12138 2025-01-13 22:45:16 +08:00
parent 42cd133692
commit c20de80a21

View file

@ -1,5 +1,6 @@
package cn.super12138.todo.ui.pages.main package cn.super12138.todo.ui.pages.main
import androidx.compose.animation.core.FastOutSlowInEasing
import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.PaddingValues
@ -8,11 +9,13 @@ import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.LazyListState import androidx.compose.foundation.lazy.LazyListState
import androidx.compose.foundation.lazy.items import androidx.compose.foundation.lazy.items
import androidx.compose.foundation.shape.CircleShape
import androidx.compose.material3.MaterialTheme import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
@ -20,6 +23,11 @@ import cn.super12138.todo.R
import cn.super12138.todo.logic.database.TodoEntity import cn.super12138.todo.logic.database.TodoEntity
import cn.super12138.todo.logic.model.Subjects import cn.super12138.todo.logic.model.Subjects
import cn.super12138.todo.ui.pages.main.components.TodoCard import cn.super12138.todo.ui.pages.main.components.TodoCard
import my.nanihadesuka.compose.LazyColumnScrollbar
import my.nanihadesuka.compose.ScrollbarLayoutSide
import my.nanihadesuka.compose.ScrollbarSelectionActionable
import my.nanihadesuka.compose.ScrollbarSelectionMode
import my.nanihadesuka.compose.ScrollbarSettings
@Composable @Composable
fun ManagerFragment( fun ManagerFragment(
@ -30,42 +38,50 @@ fun ManagerFragment(
modifier: Modifier = Modifier modifier: Modifier = Modifier
) { ) {
val context = LocalContext.current val context = LocalContext.current
LazyColumn( LazyColumnScrollbar(
modifier = modifier,
state = state, state = state,
contentPadding = PaddingValues( settings = ScrollbarSettings(
start = 10.dp, thumbUnselectedColor = MaterialTheme.colorScheme.secondary,
end = 10.dp, thumbSelectedColor = MaterialTheme.colorScheme.primary
) ),
modifier = modifier,
) { ) {
if (list.isEmpty()) { LazyColumn(
item { state = state,
Column( contentPadding = PaddingValues(
verticalArrangement = Arrangement.Center, start = 10.dp,
horizontalAlignment = Alignment.CenterHorizontally, end = 10.dp,
modifier = Modifier.fillMaxSize() )
) { ) {
Text( if (list.isEmpty()) {
text = stringResource(R.string.tip_no_task), item {
style = MaterialTheme.typography.titleMedium Column(
verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally,
modifier = Modifier.fillMaxSize()
) {
Text(
text = stringResource(R.string.tip_no_task),
style = MaterialTheme.typography.titleMedium
)
}
}
} else {
items(
items = list,
key = { it.id }
) { item ->
TodoCard(
content = item.content,
subject = Subjects.fromId(item.subject).getDisplayName(context),
onCardClick = { onItemClick(item) },
onChecked = { onItemChecked(item) },
modifier = Modifier
.padding(vertical = 5.dp)
.animateItem()
) )
} }
} }
} else {
items(
items = list,
key = { it.id }
) { item ->
TodoCard(
content = item.content,
subject = Subjects.fromId(item.subject).getDisplayName(context),
onCardClick = { onItemClick(item) },
onChecked = { onItemChecked(item) },
modifier = Modifier
.padding(vertical = 5.dp)
.animateItem()
)
}
} }
} }
} }