Jelajahi Sumber

fix:一些UI问题修复

fansangg 4 bulan lalu
induk
melakukan
8233f9951a

+ 20 - 15
app/src/main/java/io/legado/app/ui/book/read/ReadBookMenuBar.kt

@@ -688,6 +688,7 @@ private fun ReadBookMenuSurface(
                             title = stringResource(R.string.header_footer),
                             title = stringResource(R.string.header_footer),
                             maxHeight = maxHeight,
                             maxHeight = maxHeight,
                             scrollContent = false,
                             scrollContent = false,
+                            animateSize = false,
                             bottomPadding = if (extendSurfaceToNavigationBar) navBarHeight else 0.dp,
                             bottomPadding = if (extendSurfaceToNavigationBar) navBarHeight else 0.dp,
                             onBack = { onIntent(ReadBookIntent.ReadMenuBack) },
                             onBack = { onIntent(ReadBookIntent.ReadMenuBack) },
                         ) {
                         ) {
@@ -2367,23 +2368,27 @@ private fun MenuBottomBar(
             ) {
             ) {
                 pageButtons.chunked(itemsPerRow).forEach { rowButtons ->
                 pageButtons.chunked(itemsPerRow).forEach { rowButtons ->
                     Row(
                     Row(
-                        horizontalArrangement = when {
-                            rowButtons.size > 1 -> Arrangement.SpaceBetween
-                            else -> Arrangement.spacedBy(32.dp, Alignment.CenterHorizontally)
-                        },
-                        modifier = Modifier
-                            .fillMaxWidth(),
+                        modifier = Modifier.fillMaxWidth(),
+                        verticalAlignment = Alignment.CenterVertically
                     ) {
                     ) {
                         rowButtons.forEach { button ->
                         rowButtons.forEach { button ->
-                            ToolButtonItem(
-                                button = button,
-                                state = state,
-                                colors = colors,
-                                backdrop = backdrop,
-                                glassEnabled = buttonGlassEnabled,
-                                labelColor = labelColor,
-                                modifier = Modifier.width(if (buttonGlassEnabled) 48.dp else 40.dp),
-                            )
+                            Box(
+                                modifier = Modifier.weight(1f),
+                                contentAlignment = Alignment.Center
+                            ) {
+                                ToolButtonItem(
+                                    button = button,
+                                    state = state,
+                                    colors = colors,
+                                    backdrop = backdrop,
+                                    glassEnabled = buttonGlassEnabled,
+                                    labelColor = labelColor,
+                                    modifier = Modifier.width(if (buttonGlassEnabled) 48.dp else 40.dp),
+                                )
+                            }
+                        }
+                        repeat(itemsPerRow - rowButtons.size) {
+                            Spacer(modifier = Modifier.weight(1f))
                         }
                         }
                     }
                     }
                 }
                 }

+ 2 - 7
app/src/main/java/io/legado/app/ui/book/read/sheet/HeaderFooterPage.kt

@@ -10,9 +10,7 @@ import androidx.compose.animation.shrinkVertically
 import androidx.compose.foundation.gestures.Orientation
 import androidx.compose.foundation.gestures.Orientation
 import androidx.compose.foundation.layout.Box
 import androidx.compose.foundation.layout.Box
 import androidx.compose.foundation.layout.Column
 import androidx.compose.foundation.layout.Column
-import androidx.compose.foundation.layout.Spacer
 import androidx.compose.foundation.layout.fillMaxWidth
 import androidx.compose.foundation.layout.fillMaxWidth
-import androidx.compose.foundation.layout.height
 import androidx.compose.foundation.layout.padding
 import androidx.compose.foundation.layout.padding
 import androidx.compose.foundation.layout.size
 import androidx.compose.foundation.layout.size
 import androidx.compose.foundation.pager.HorizontalPager
 import androidx.compose.foundation.pager.HorizontalPager
@@ -24,8 +22,6 @@ import androidx.compose.material.icons.filled.ChevronRight
 import androidx.compose.material.icons.filled.ExpandMore
 import androidx.compose.material.icons.filled.ExpandMore
 import androidx.compose.material.icons.filled.TextFields
 import androidx.compose.material.icons.filled.TextFields
 import androidx.compose.material3.Icon
 import androidx.compose.material3.Icon
-import androidx.compose.material3.MaterialTheme
-import androidx.compose.material3.Text
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.DisposableEffect
 import androidx.compose.runtime.DisposableEffect
 import androidx.compose.runtime.LaunchedEffect
 import androidx.compose.runtime.LaunchedEffect
@@ -45,7 +41,6 @@ import androidx.compose.ui.layout.onSizeChanged
 import androidx.compose.ui.platform.LocalContext
 import androidx.compose.ui.platform.LocalContext
 import androidx.compose.ui.res.stringArrayResource
 import androidx.compose.ui.res.stringArrayResource
 import androidx.compose.ui.res.stringResource
 import androidx.compose.ui.res.stringResource
-import androidx.compose.ui.text.style.TextAlign
 import androidx.compose.ui.unit.dp
 import androidx.compose.ui.unit.dp
 import androidx.core.net.toUri
 import androidx.core.net.toUri
 import androidx.lifecycle.compose.collectAsStateWithLifecycle
 import androidx.lifecycle.compose.collectAsStateWithLifecycle
@@ -315,7 +310,7 @@ internal fun HeaderFooterPage(
                                 showColorPicker = true
                                 showColorPicker = true
                             },
                             },
                         )
                         )
-                        Spacer(Modifier.height(8.dp))
+
                         TinyClickableSettingItem(
                         TinyClickableSettingItem(
                             title = stringResource(R.string.padding),
                             title = stringResource(R.string.padding),
                             description = stringResource(
                             description = stringResource(
@@ -445,7 +440,7 @@ internal fun HeaderFooterPage(
                                 showColorPicker = true
                                 showColorPicker = true
                             },
                             },
                         )
                         )
-                        Spacer(Modifier.height(8.dp))
+
                         TinyClickableSettingItem(
                         TinyClickableSettingItem(
                             title = stringResource(R.string.padding),
                             title = stringResource(R.string.padding),
                             description = stringResource(
                             description = stringResource(

+ 1 - 9
app/src/main/java/io/legado/app/ui/book/read/sheet/SystemMenuPage.kt

@@ -9,9 +9,7 @@ import androidx.compose.foundation.border
 import androidx.compose.foundation.gestures.Orientation
 import androidx.compose.foundation.gestures.Orientation
 import androidx.compose.foundation.layout.Box
 import androidx.compose.foundation.layout.Box
 import androidx.compose.foundation.layout.Column
 import androidx.compose.foundation.layout.Column
-import androidx.compose.foundation.layout.Spacer
 import androidx.compose.foundation.layout.fillMaxWidth
 import androidx.compose.foundation.layout.fillMaxWidth
-import androidx.compose.foundation.layout.height
 import androidx.compose.foundation.layout.padding
 import androidx.compose.foundation.layout.padding
 import androidx.compose.foundation.layout.size
 import androidx.compose.foundation.layout.size
 import androidx.compose.foundation.pager.HorizontalPager
 import androidx.compose.foundation.pager.HorizontalPager
@@ -400,8 +398,6 @@ private fun GlobalMenuTab(
             },
             },
         )
         )
 
 
-        Spacer(Modifier.height(8.dp))
-
         SectionTitle(stringResource(R.string.show_brightness_view))
         SectionTitle(stringResource(R.string.show_brightness_view))
 
 
         TinyDropdownSettingItem(
         TinyDropdownSettingItem(
@@ -425,8 +421,6 @@ private fun GlobalMenuTab(
             )
             )
         }
         }
 
 
-        Spacer(Modifier.height(8.dp))
-
         val borderEnabled = preferences.readMenuBorderWidth > 0
         val borderEnabled = preferences.readMenuBorderWidth > 0
         TinySwitchSettingItem(
         TinySwitchSettingItem(
             title = stringResource(R.string.read_menu_border),
             title = stringResource(R.string.read_menu_border),
@@ -467,8 +461,6 @@ private fun GlobalMenuTab(
             }
             }
         }
         }
 
 
-        Spacer(Modifier.height(8.dp))
-
         TinySliderSettingItem(
         TinySliderSettingItem(
             title = stringResource(R.string.read_menu_blur_radius),
             title = stringResource(R.string.read_menu_blur_radius),
             value = preferences.readMenuBlurRadius.toFloat(),
             value = preferences.readMenuBlurRadius.toFloat(),
@@ -730,7 +722,7 @@ private fun TopBarTab(
                 onIntent(ReadBookIntent.ShowSheet(ReadBookSheet.TitleBarIconConfig))
                 onIntent(ReadBookIntent.ShowSheet(ReadBookSheet.TitleBarIconConfig))
             },
             },
         )
         )
-        Spacer(Modifier.height(8.dp))
+
         TinySwitchSettingItem(
         TinySwitchSettingItem(
             title = stringResource(R.string.read_menu_bar_blur),
             title = stringResource(R.string.read_menu_bar_blur),
             checked = topBarBlurEnabled,
             checked = topBarBlurEnabled,

+ 21 - 14
app/src/main/java/io/legado/app/ui/widget/components/AppFloatingActionButton.kt

@@ -7,6 +7,7 @@ import androidx.compose.animation.fadeOut
 import androidx.compose.animation.scaleIn
 import androidx.compose.animation.scaleIn
 import androidx.compose.animation.scaleOut
 import androidx.compose.animation.scaleOut
 import androidx.compose.foundation.layout.Arrangement
 import androidx.compose.foundation.layout.Arrangement
+import androidx.compose.foundation.layout.Box
 import androidx.compose.foundation.layout.Column
 import androidx.compose.foundation.layout.Column
 import androidx.compose.foundation.layout.Row
 import androidx.compose.foundation.layout.Row
 import androidx.compose.foundation.layout.Spacer
 import androidx.compose.foundation.layout.Spacer
@@ -94,20 +95,26 @@ fun AppFloatingActionButton(
         )
         )
     } else {
     } else {
         if (tooltipText != null) {
         if (tooltipText != null) {
-            TooltipBox(
-                positionProvider = TooltipDefaults.rememberTooltipPositionProvider(
-                    TooltipAnchorPosition.Above
-                ),
-                tooltip = { PlainTooltip { AppText(tooltipText) } },
-                state = rememberTooltipState(),
-            ) {
-                FloatingActionButton(
-                    onClick = onClick,
-                    modifier = modifier,
-                    containerColor = containerColor,
-                    contentColor = contentColor,
-                    content = fabContent
-                )
+            Box(modifier = modifier) {
+                TooltipBox(
+                    positionProvider = TooltipDefaults.rememberTooltipPositionProvider(
+                        TooltipAnchorPosition.Above
+                    ),
+                    tooltip = {
+                        PlainTooltip(
+                            containerColor = LegadoTheme.colorScheme.surfaceContainerLow,
+                            contentColor = LegadoTheme.colorScheme.onSurface,
+                        ) { AppText(tooltipText) }
+                    },
+                    state = rememberTooltipState(),
+                ) {
+                    FloatingActionButton(
+                        onClick = onClick,
+                        containerColor = containerColor,
+                        contentColor = contentColor,
+                        content = fabContent
+                    )
+                }
             }
             }
         } else {
         } else {
             FloatingActionButton(
             FloatingActionButton(