cm add multi clients scroll controller arrow actions

This commit is contained in:
csf 2022-10-20 23:22:02 +09:00
parent 94c8b117ef
commit 6e6a359809
2 changed files with 19 additions and 3 deletions

View File

@ -125,6 +125,7 @@ class ConnectionManagerState extends State<ConnectionManager> {
showClose: true,
controller: serverModel.tabController,
maxLabelWidth: 100,
tail: buildScrollJumper(),
pageViewBuilder: (pageView) => Row(children: [
Expanded(child: pageView),
Consumer<ChatModel>(
@ -159,6 +160,21 @@ class ConnectionManagerState extends State<ConnectionManager> {
),
);
}
Widget buildScrollJumper() {
final offstage = gFFI.serverModel.clients.length < 2;
final sc = gFFI.serverModel.tabController.state.value.scrollController;
return Offstage(
offstage: offstage,
child: Row(
children: [
ActionIcon(
icon: Icons.arrow_left, iconSize: 22, onTap: sc.backward),
ActionIcon(
icon: Icons.arrow_right, iconSize: 22, onTap: sc.forward),
],
));
}
}
Widget buildConnectionCard(Client client) {

View File

@ -844,7 +844,7 @@ class _CloseButton extends StatelessWidget {
}
class ActionIcon extends StatelessWidget {
final String message;
final String? message;
final IconData icon;
final Function() onTap;
final bool isClose;
@ -852,7 +852,7 @@ class ActionIcon extends StatelessWidget {
final double boxSize;
const ActionIcon(
{Key? key,
required this.message,
this.message,
required this.icon,
required this.onTap,
this.isClose = false,
@ -864,7 +864,7 @@ class ActionIcon extends StatelessWidget {
Widget build(BuildContext context) {
RxBool hover = false.obs;
return Obx(() => Tooltip(
message: translate(message),
message: message != null ? translate(message!) : "",
waitDuration: const Duration(seconds: 1),
child: InkWell(
hoverColor: isClose