feat: peer card type

Signed-off-by: Kingtous <kingtous@qq.com>
This commit is contained in:
Kingtous
2022-08-23 17:21:50 +08:00
parent 8a825a7345
commit 4f859d3c9d
3 changed files with 285 additions and 118 deletions

View File

@@ -5,6 +5,7 @@ import 'package:contextmenu/contextmenu.dart';
import 'package:flutter/material.dart';
import 'package:flutter_hbb/desktop/pages/desktop_home_page.dart';
import 'package:flutter_hbb/desktop/widgets/peer_widget.dart';
import 'package:flutter_hbb/desktop/widgets/peercard_widget.dart';
import 'package:flutter_hbb/utils/multi_window_manager.dart';
import 'package:get/get.dart';
import 'package:provider/provider.dart';
@@ -1014,7 +1015,13 @@ class _PeerTabbedPageState extends State<_PeerTabbedPage>
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
_createTabBar(context),
Row(
children: [
Expanded(child: _createTabBar(context)),
_createSearchBar(context),
_createPeerViewTypeSwitch(context),
],
),
_createTabBarView(),
],
);
@@ -1054,4 +1061,46 @@ class _PeerTabbedPageState extends State<_PeerTabbedPage>
controller: _tabController, children: super.widget.children)
.paddingSymmetric(horizontal: 12.0, vertical: 4.0));
}
_createSearchBar(BuildContext context) {
return Offstage();
}
_createPeerViewTypeSwitch(BuildContext context) {
final activeDeco = BoxDecoration(color: Colors.white);
return Row(
children: [
Obx(
() => Container(
padding: EdgeInsets.all(4.0),
decoration:
peerCardUiType.value == PeerUiType.grid ? activeDeco : null,
child: InkWell(
onTap: () {
peerCardUiType.value = PeerUiType.grid;
},
child: Icon(
Icons.grid_view_rounded,
size: 20,
)),
),
),
Obx(
() => Container(
padding: EdgeInsets.all(4.0),
decoration:
peerCardUiType.value == PeerUiType.list ? activeDeco : null,
child: InkWell(
onTap: () {
peerCardUiType.value = PeerUiType.list;
},
child: Icon(
Icons.list,
size: 20,
)),
),
),
],
);
}
}