mobile: limited height scroll tags/users, and scrollable peers

Signed-off-by: 21pages <pages21@163.com>
This commit is contained in:
21pages
2023-09-25 13:35:01 +08:00
parent 5236dcfe52
commit 167bf70cd6
6 changed files with 37 additions and 37 deletions

View File

@@ -1,3 +1,5 @@
import 'dart:math';
import 'package:dynamic_layouts/dynamic_layouts.dart';
import 'package:flutter/material.dart';
import 'package:flutter_hbb/common/formatter/id_formatter.dart';
@@ -170,16 +172,18 @@ class _AddressBookState extends State<AddressBook> {
});
}
final gridView = DynamicGridView.builder(
shrinkWrap: isMobile,
gridDelegate: SliverGridDelegateWithWrapping(),
itemCount: tags.length,
itemBuilder: (BuildContext context, int index) {
final e = tags[index];
return tagBuilder(e);
});
final maxHeight = max(MediaQuery.of(context).size.height / 6, 100.0);
return isDesktop
? DynamicGridView.builder(
gridDelegate: SliverGridDelegateWithWrapping(
mainAxisSpacing: 0, crossAxisSpacing: 0),
itemCount: tags.length,
itemBuilder: (BuildContext context, int index) {
final e = tags[index];
return tagBuilder(e);
})
: Wrap(children: tags.map((e) => tagBuilder(e)).toList());
? gridView
: LimitedBox(maxHeight: maxHeight, child: gridView);
});
}

View File

@@ -1,3 +1,5 @@
import 'dart:math';
import 'package:flutter/material.dart';
import 'package:flutter_hbb/common/hbbs/hbbs.dart';
import 'package:flutter_hbb/common/widgets/login.dart';
@@ -157,11 +159,14 @@ class _MyGroupState extends State<MyGroup> {
}
return true;
}).toList();
final listView = ListView.builder(
shrinkWrap: isMobile,
itemCount: items.length,
itemBuilder: (context, index) => _buildUserItem(items[index]));
var maxHeight = max(MediaQuery.of(context).size.height / 6, 100.0);
return isDesktop
? ListView.builder(
itemCount: items.length,
itemBuilder: (context, index) => _buildUserItem(items[index]))
: Column(children: items.map((e) => _buildUserItem(e)).toList());
? listView
: LimitedBox(maxHeight: maxHeight, child: listView);
});
}

View File

@@ -197,23 +197,14 @@ class _PeersViewState extends State<_PeersView> with WindowListener {
: SizedBox(width: mobileWidth, child: visibilityChild);
}
final Widget child;
if (isDesktop) {
child = DynamicGridView.builder(
gridDelegate: SliverGridDelegateWithWrapping(
mainAxisSpacing: space / 2, crossAxisSpacing: space),
itemCount: peers.length,
itemBuilder: (BuildContext context, int index) {
return buildOnePeer(peers[index]);
},
);
} else {
child = Wrap(
spacing: space,
runSpacing: space,
children: peers.map((e) => buildOnePeer(e)).toList());
}
final child = DynamicGridView.builder(
gridDelegate: SliverGridDelegateWithWrapping(
mainAxisSpacing: space / 2, crossAxisSpacing: space),
itemCount: peers.length,
itemBuilder: (BuildContext context, int index) {
return buildOnePeer(peers[index]);
},
);
if (updateEvent == UpdateEvent.load) {
_curPeers.clear();
_curPeers.addAll(peers.map((e) => e.id));