feat: 待办列表滚动条的颜色
This commit is contained in:
parent
42cd133692
commit
c20de80a21
1 changed files with 47 additions and 31 deletions
|
|
@ -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()
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
Reference in a new issue