[优化] 优化代码
This commit is contained in:
@@ -60,6 +60,7 @@ import androidx.compose.runtime.setValue
|
||||
import androidx.compose.runtime.snapshotFlow
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.platform.ClipEntry
|
||||
import androidx.compose.ui.platform.LocalClipboard
|
||||
import androidx.compose.ui.platform.LocalConfiguration
|
||||
@@ -77,7 +78,6 @@ import io.legado.app.ui.book.import.remote.RemoteBookActivity
|
||||
import io.legado.app.ui.book.manage.BookshelfManageActivity
|
||||
import io.legado.app.ui.book.search.SearchActivity
|
||||
import io.legado.app.ui.config.bookshelfConfig.BookshelfConfig
|
||||
import io.legado.app.ui.widget.components.GlassTopAppBarDefaults
|
||||
import io.legado.app.ui.widget.components.button.SmallOutlinedIconToggleButton
|
||||
import io.legado.app.ui.widget.components.filePicker.FilePickerSheet
|
||||
import io.legado.app.ui.widget.components.importComponents.SourceInputDialog
|
||||
@@ -324,7 +324,7 @@ fun BookshelfScreen(
|
||||
selectedTabIndex = selectedTabIndex,
|
||||
edgePadding = 0.dp,
|
||||
divider = { },
|
||||
containerColor = GlassTopAppBarDefaults.containerColor(),
|
||||
containerColor = Color.Transparent,
|
||||
minTabWidth = 0.dp,
|
||||
modifier = Modifier.weight(1f)
|
||||
) {
|
||||
|
||||
@@ -87,6 +87,14 @@ object GlassTopAppBarDefaults {
|
||||
)
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun scrolledContainerColor(): Color {
|
||||
return GlassDefaults.glassColor(
|
||||
noBlurColor = MaterialTheme.colorScheme.surfaceContainer,
|
||||
blurAlpha = GlassDefaults.TransparentAlpha
|
||||
)
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun controlContainerColor(): Color {
|
||||
return GlassDefaults.glassColor(
|
||||
|
||||
@@ -1,14 +1,17 @@
|
||||
package io.legado.app.ui.widget.components.topbar
|
||||
|
||||
import androidx.compose.animation.AnimatedVisibility
|
||||
import androidx.compose.animation.animateColorAsState
|
||||
import androidx.compose.animation.expandVertically
|
||||
import androidx.compose.animation.fadeIn
|
||||
import androidx.compose.animation.fadeOut
|
||||
import androidx.compose.animation.shrinkVertically
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.ColumnScope
|
||||
import androidx.compose.foundation.layout.RowScope
|
||||
import androidx.compose.foundation.layout.fillMaxWidth
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.automirrored.filled.ArrowBack
|
||||
import androidx.compose.material.icons.filled.Close
|
||||
@@ -16,17 +19,22 @@ import androidx.compose.material.icons.filled.MoreVert
|
||||
import androidx.compose.material.icons.filled.Search
|
||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.TopAppBarDefaults
|
||||
import androidx.compose.material3.TopAppBarScrollBehavior
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.runtime.mutableStateOf
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.runtime.setValue
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.lerp
|
||||
import androidx.compose.ui.graphics.vector.ImageVector
|
||||
import androidx.compose.ui.text.style.TextOverflow
|
||||
import io.legado.app.ui.widget.components.AdaptiveAnimatedText
|
||||
import io.legado.app.ui.widget.components.AnimatedTextLine
|
||||
import io.legado.app.ui.widget.components.GlassMediumFlexibleTopAppBar
|
||||
import io.legado.app.ui.widget.components.GlassTopAppBarDefaults
|
||||
import io.legado.app.ui.widget.components.SearchBarSection
|
||||
import io.legado.app.ui.widget.components.button.TopBarActionButton
|
||||
import io.legado.app.ui.widget.components.button.TopbarNavigationButton
|
||||
@@ -56,7 +64,21 @@ fun <T> DynamicTopAppBar(
|
||||
var showMenu by remember { mutableStateOf(false) }
|
||||
val isSelecting = state.selectedIds.isNotEmpty()
|
||||
|
||||
Column {
|
||||
val containerColor = GlassTopAppBarDefaults.containerColor()
|
||||
val scrolledColor = GlassTopAppBarDefaults.scrolledContainerColor()
|
||||
|
||||
val collapsedFraction = scrollBehavior.state.collapsedFraction
|
||||
|
||||
val animatedColor by animateColorAsState(
|
||||
targetValue = lerp(containerColor, scrolledColor, collapsedFraction),
|
||||
label = "TopBarContainerColor"
|
||||
)
|
||||
|
||||
Column(
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.background(animatedColor)
|
||||
) {
|
||||
GlassMediumFlexibleTopAppBar(
|
||||
title = {
|
||||
val titleText = when {
|
||||
@@ -110,7 +132,11 @@ fun <T> DynamicTopAppBar(
|
||||
}
|
||||
}
|
||||
},
|
||||
scrollBehavior = scrollBehavior
|
||||
scrollBehavior = scrollBehavior,
|
||||
colors = TopAppBarDefaults.topAppBarColors(
|
||||
containerColor = Color.Transparent,
|
||||
scrolledContainerColor = Color.Transparent
|
||||
)
|
||||
)
|
||||
|
||||
AnimatedVisibility(
|
||||
|
||||
Reference in New Issue
Block a user