mobile still use no scrollable widgets

Signed-off-by: 21pages <pages21@163.com>
This commit is contained in:
21pages 2023-09-24 19:54:11 +08:00
parent 2080e56f87
commit 6b43042828
3 changed files with 63 additions and 43 deletions

View File

@ -157,23 +157,29 @@ class _AddressBookState extends State<AddressBook> {
} else { } else {
tags = gFFI.abModel.tags; tags = gFFI.abModel.tags;
} }
return DynamicGridView.builder( tagBuilder(String e) {
gridDelegate: SliverGridDelegateWithWrapping( return AddressBookTag(
mainAxisSpacing: 0, crossAxisSpacing: 0), name: e,
itemCount: tags.length, tags: gFFI.abModel.selectedTags,
itemBuilder: (BuildContext context, int index) { onTap: () {
final e = tags[index]; if (gFFI.abModel.selectedTags.contains(e)) {
return AddressBookTag( gFFI.abModel.selectedTags.remove(e);
name: e, } else {
tags: gFFI.abModel.selectedTags, gFFI.abModel.selectedTags.add(e);
onTap: () { }
if (gFFI.abModel.selectedTags.contains(e)) { });
gFFI.abModel.selectedTags.remove(e); }
} else {
gFFI.abModel.selectedTags.add(e); 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());
}); });
} }

View File

@ -157,9 +157,11 @@ class _MyGroupState extends State<MyGroup> {
} }
return true; return true;
}).toList(); }).toList();
return ListView.builder( return isDesktop
itemCount: items.length, ? ListView.builder(
itemBuilder: (context, index) => _buildUserItem(items[index])); itemCount: items.length,
itemBuilder: (context, index) => _buildUserItem(items[index]))
: Column(children: items.map((e) => _buildUserItem(e)).toList());
}); });
} }

View File

@ -178,29 +178,41 @@ class _PeersViewState extends State<_PeersView> with WindowListener {
if (snapshot.hasData) { if (snapshot.hasData) {
final peers = snapshot.data!; final peers = snapshot.data!;
gFFI.peerTabModel.setCurrentTabCachedPeers(peers); gFFI.peerTabModel.setCurrentTabCachedPeers(peers);
final child = DynamicGridView.builder( buildOnePeer(Peer peer) {
gridDelegate: SliverGridDelegateWithWrapping( final visibilityChild = VisibilityDetector(
mainAxisSpacing: space / 2, crossAxisSpacing: space), key: ValueKey(_cardId(peer.id)),
itemCount: peers.length, onVisibilityChanged: onVisibilityChanged,
itemBuilder: (BuildContext context, int index) { child: widget.peerCardBuilder(peer),
final visibilityChild = VisibilityDetector( );
key: ValueKey(_cardId(peers[index].id)), return isDesktop
onVisibilityChanged: onVisibilityChanged, ? Obx(
child: widget.peerCardBuilder(peers[index]), () => SizedBox(
); width: 220,
return isDesktop height:
? Obx( peerCardUiType.value == PeerUiType.grid ? 140 : 42,
() => SizedBox( child: visibilityChild,
width: 220, ),
height: peerCardUiType.value == PeerUiType.grid )
? 140 : SizedBox(width: mobileWidth, child: visibilityChild);
: 42, }
child: visibilityChild,
), final Widget child;
) if (isDesktop) {
: SizedBox(width: mobileWidth, child: visibilityChild); 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());
}
if (updateEvent == UpdateEvent.load) { if (updateEvent == UpdateEvent.load) {
_curPeers.clear(); _curPeers.clear();
_curPeers.addAll(peers.map((e) => e.id)); _curPeers.addAll(peers.map((e) => e.id));