fix(profile): 修复伞下树图居中问题;更名提款/转账为提取/转动

- 使用 LayoutBuilder 获取实际容器宽度计算节点显示
- 修改兑换页面按钮文字从"提款/转账"改为"提取/转动"

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
hailin 2025-12-15 04:28:58 -08:00
parent 4d6ce3ce08
commit 7db38114d9
2 changed files with 11 additions and 8 deletions

View File

@ -79,19 +79,22 @@ class _TeamTreeWidgetState extends State<TeamTreeWidget> {
static const double nodeHorizontalSpacing = 12.0;
static const double nodeVerticalSpacing = 40.0;
// LayoutBuilder
double _containerWidth = 0;
@override
Widget build(BuildContext context) {
return LayoutBuilder(
builder: (context, constraints) {
// 使
final containerWidth = constraints.maxWidth;
_containerWidth = constraints.maxWidth;
return SingleChildScrollView(
scrollDirection: Axis.horizontal,
child: SingleChildScrollView(
child: ConstrainedBox(
constraints: BoxConstraints(
minWidth: containerWidth,
minWidth: _containerWidth,
),
child: Center(
child: Padding(
@ -110,9 +113,9 @@ class _TeamTreeWidgetState extends State<TeamTreeWidget> {
Widget _buildTreeLevel(List<TeamTreeNode> nodes, int level) {
if (nodes.isEmpty) return const SizedBox.shrink();
//
final screenWidth = MediaQuery.of(context).size.width - 32; // padding
final maxVisibleNodes = ((screenWidth + nodeHorizontalSpacing) / (nodeWidth + nodeHorizontalSpacing)).floor();
// 使 padding
final availableWidth = _containerWidth - 16; // padding (8*2)
final maxVisibleNodes = ((availableWidth + nodeHorizontalSpacing) / (nodeWidth + nodeHorizontalSpacing)).floor().clamp(1, 100);
//
List<TeamTreeNode> visibleNodes;

View File

@ -262,7 +262,7 @@ class _TradingPageState extends ConsumerState<TradingPage> {
// 线
_buildDivider(),
const SizedBox(height: 24),
// /
// /
_buildWithdrawButton(),
const SizedBox(height: 8),
// USDT余额显示
@ -518,7 +518,7 @@ class _TradingPageState extends ConsumerState<TradingPage> {
);
}
/// /
/// /
/// USDT 0
Widget _buildWithdrawButton() {
// 0
@ -560,7 +560,7 @@ class _TradingPageState extends ConsumerState<TradingPage> {
),
const SizedBox(width: 8),
Text(
'款 / 转账',
'取 / 转动',
style: TextStyle(
fontSize: 16,
fontFamily: 'Inter',