opt: live follow

This commit is contained in:
guozhigq
2024-12-09 23:38:39 +08:00
parent 51e963c52c
commit 43bc545363
2 changed files with 41 additions and 27 deletions

View File

@ -194,26 +194,31 @@ class _LivePageState extends State<LivePage>
),
),
),
InkWell(
onTap: () {
Get.toNamed('/liveFollowing');
},
highlightColor: Colors.transparent,
splashColor: Colors.transparent,
child: Row(
children: [
Text(
'查看更多',
style: TextStyle(
fontSize: 14,
color: Theme.of(context).colorScheme.outline,
),
Obx(
() => Visibility(
visible: _liveController.liveFollowingCount.value > 0,
child: InkWell(
onTap: () {
Get.toNamed('/liveFollowing');
},
highlightColor: Colors.transparent,
splashColor: Colors.transparent,
child: Row(
children: [
Text(
'查看更多',
style: TextStyle(
fontSize: 14,
color: Theme.of(context).colorScheme.outline,
),
),
Icon(
Icons.chevron_right,
color: Theme.of(context).colorScheme.outline,
),
],
),
Icon(
Icons.chevron_right,
color: Theme.of(context).colorScheme.outline,
),
],
),
),
),
],
@ -222,19 +227,18 @@ class _LivePageState extends State<LivePage>
future: _futureBuilderFuture2,
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.done) {
if (snapshot.data == null) {
return const SizedBox();
}
Map? data = snapshot.data;
if (data?['status']) {
if (data != null && data['status']) {
RxList list = _liveController.liveFollowingList;
return LiveFollowingListView(list: list);
return list.isNotEmpty
? LiveFollowingListView(list: list)
: const Center(child: Text('没有人在直播'));
} else {
return SizedBox(
height: 80,
child: Center(
child: Text(
data?['msg'] ?? '',
data?['msg'] ?? '请求异常',
style: TextStyle(
color: Theme.of(context).colorScheme.outline,
fontSize: 12,
@ -283,6 +287,15 @@ class LiveFollowingListView extends StatelessWidget {
},
);
},
onLongPress: () {
Get.toNamed(
'/member?mid=${list[index].uid}',
arguments: {
'face': list[index].face,
'heroTag': list[index].uid.toString(),
},
);
},
child: Container(
width: 54,
height: 54,

View File

@ -9,7 +9,7 @@ class LiveFollowController extends GetxController {
RxInt crossAxisCount = 2.obs;
Box setting = GStorage.setting;
int _currentPage = 1;
RxInt liveFollowingCount = 0.obs;
RxString liveFollowingCount = '- '.obs;
RxList<LiveFollowingItemModel> liveFollowingList =
<LiveFollowingItemModel>[].obs;
@ -28,10 +28,11 @@ class LiveFollowController extends GetxController {
if (res['status']) {
if (type == 'init') {
liveFollowingList.value = res['data'].list;
liveFollowingCount.value = res['data'].liveCount;
liveFollowingCount.value = res['data'].liveCount.toString();
} else if (type == 'onLoad') {
liveFollowingList.addAll(res['data'].list);
}
liveFollowingList.removeWhere((e) => e.liveStatus != 1);
_currentPage += 1;
} else {
SmartDialog.showToast(res['msg']);