Merge pull request #5798 from 21pages/mobile

mobile still use no scrollable widgets
This commit is contained in:
RustDesk 2023-09-24 20:51:09 +08:00 committed by GitHub
commit a0c7bbe213
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 63 additions and 43 deletions

View File

@ -157,23 +157,29 @@ class _AddressBookState extends State<AddressBook> {
} else {
tags = gFFI.abModel.tags;
}
return DynamicGridView.builder(
gridDelegate: SliverGridDelegateWithWrapping(
mainAxisSpacing: 0, crossAxisSpacing: 0),
itemCount: tags.length,
itemBuilder: (BuildContext context, int index) {
final e = tags[index];
return AddressBookTag(
name: e,
tags: gFFI.abModel.selectedTags,
onTap: () {
if (gFFI.abModel.selectedTags.contains(e)) {
gFFI.abModel.selectedTags.remove(e);
} else {
gFFI.abModel.selectedTags.add(e);
}
});
});
tagBuilder(String e) {
return AddressBookTag(
name: e,
tags: gFFI.abModel.selectedTags,
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;
}).toList();
return ListView.builder(
itemCount: items.length,
itemBuilder: (context, index) => _buildUserItem(items[index]));
return isDesktop
? ListView.builder(
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) {
final peers = snapshot.data!;
gFFI.peerTabModel.setCurrentTabCachedPeers(peers);
final child = DynamicGridView.builder(
gridDelegate: SliverGridDelegateWithWrapping(
mainAxisSpacing: space / 2, crossAxisSpacing: space),
itemCount: peers.length,
itemBuilder: (BuildContext context, int index) {
final visibilityChild = VisibilityDetector(
key: ValueKey(_cardId(peers[index].id)),
onVisibilityChanged: onVisibilityChanged,
child: widget.peerCardBuilder(peers[index]),
);
return isDesktop
? Obx(
() => SizedBox(
width: 220,
height: peerCardUiType.value == PeerUiType.grid
? 140
: 42,
child: visibilityChild,
),
)
: SizedBox(width: mobileWidth, child: visibilityChild);
},
);
buildOnePeer(Peer peer) {
final visibilityChild = VisibilityDetector(
key: ValueKey(_cardId(peer.id)),
onVisibilityChanged: onVisibilityChanged,
child: widget.peerCardBuilder(peer),
);
return isDesktop
? Obx(
() => SizedBox(
width: 220,
height:
peerCardUiType.value == PeerUiType.grid ? 140 : 42,
child: visibilityChild,
),
)
: 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());
}
if (updateEvent == UpdateEvent.load) {
_curPeers.clear();
_curPeers.addAll(peers.map((e) => e.id));