Skip to content

feat(settings): refine the top bar, category tabs and search field - #398

Merged
LittleSheep2Code merged 6 commits into
Solsynth:v3from
BluewhaleYF:v3
Oct 10, 2026
Merged

LittleSheep2Code merged 6 commits into
Solsynth:v3from
BluewhaleYF:v3

Conversation

@BluewhaleYF

@BluewhaleYF BluewhaleYF commented Oct 7, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Polishes the top area of the app settings screen (search field + category tabs)
so it looks and behaves as one consistent surface.

Changes

  • Animate tab switching: the narrow layout keyed DefaultTabController on
    the selected category, so every tap rebuilt the controller and the indicator
    jumped instead of sliding. It is now keyed only on the visible category set,
    and the body cross-fades via AnimatedSwitcher.
  • Flatten the search bar: removed the default M3 elevation (6dp) and shadow
    so the field sits flush with the app bar instead of floating above it.
  • Unify the top bar: the tab strip used a gray surface while the app bar
    stayed near-white; both now share the same tone, and the search field uses one
    container tone deeper so it stays readable.

Purpose

Make the settings header feel like a single, unified surface and give tab
switching a proper, polished transition.

Preview

截图 2026-10-07 09-44-58 截图 2026-10-07 09-44-51 截图 2026-10-07 09-44-42 截图 2026-10-07 09-44-34
2026-10-07.09-45-10.mp4

View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

The narrow settings layout keyed DefaultTabController on the selected
category, so every tap rebuilt the controller and the tab indicator
jumped straight to its final position instead of sliding. Key it on the
visible category set only so the controller survives selection changes,
and cross-fade the body with AnimatedSwitcher for a real transition.
The Material 3 SearchBar defaults to a 6dp elevation with a shadow, which
looked out of place floating above the flat app bar. Drop the elevation
and force a transparent shadow/surface tint so the field sits flush with
the bar.
The category tab strip used a gray surface while the app bar stayed on the
default (near-white) surface, so the top looked split. Use one shared tone
for both, disable the app bar's surface tint and scrolled-under elevation,
and set the search field one container tone deeper so it stays readable.
@BluewhaleYF

Copy link
Copy Markdown
Contributor Author

CI 失败说明

本次 PR 仅改动 UI,与 flutter analyze 失败无关。

失败原因为 socommon 子模块引用的 commit 当前无法拉取(该 commit 不存在/不可达),导致子模块缺失、编译中断。

佐证:同一份未修改的上游代码,昨天可正常编译,今天已无法编译,说明问题出在上游子模块引用变更。

需上游确认 socommon 的正确 commit,CI 才能恢复。本 PR 的 UI 改动可正常 review。

Paint the chat list app bar with colorScheme.primary and an onPrimary foreground when the transparent app bar setting is off, falling back to the theme's transparent treatment when it's on, matching the explore page.
The onboardingContinueAnonymous key only existed in en-US, so the "Continue as anonymous" label fell back to English. Add zh-CN and zh-TW translations.
The featured-post style started marking attachments as contained, routing them through the non-full-bleed CarouselView branch. CarouselView applies its padding to every item, so the 8px body gutter doubled into a 16px gap between two images. Pass half the gutter for the horizontal carousel so the images sit 8px apart again, matching the full-bleed strip.

@LittleSheep2Code LittleSheep2Code left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@LittleSheep2Code
LittleSheep2Code merged commit 7c3d589 into Solsynth:v3 Oct 10, 2026
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants