pikapika/lib/screens/GameDownloadScreen.dart

86 lines
2.3 KiB
Dart

import 'package:flutter/material.dart';
import 'package:pikapika/basic/Cross.dart';
import 'package:pikapika/basic/Entities.dart';
import 'package:pikapika/basic/Method.dart';
import 'package:pikapika/screens/components/ItemBuilder.dart';
import 'components/GameTitleCard.dart';
// 游戏下载地址列表页
class GameDownloadScreen extends StatefulWidget {
final GameInfo info;
const GameDownloadScreen(this.info, {Key? key}) : super(key: key);
@override
State<StatefulWidget> createState() => _GameDownloadScreenState();
}
class _GameDownloadScreenState extends State<GameDownloadScreen> {
late Future<List<String>> _future =
method.downloadGame("${widget.info.androidLinks[0]}");
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("下载 - ${widget.info.title}"),
),
body: ListView(
children: [
GameTitleCard(widget.info),
ItemBuilder(
future: _future,
onRefresh: () async {
setState(() {
_future =
method.downloadGame("${widget.info.androidLinks[0]}");
});
},
successBuilder:
(BuildContext context, AsyncSnapshot<List<String>> snapshot) {
return Container(
child: Column(
children: [
Container(
padding: EdgeInsets.all(30),
child: Text('获取到下载链接, 您只需要选择其中一个'),
),
...snapshot.data!.map((e) => _copyCard(e)),
],
),
);
},
),
],
),
);
}
Widget _copyCard(String string) {
return InkWell(
onTap: () {
copyToClipBoard(context, string);
},
child: Row(
children: [
Expanded(
child: Container(
margin: EdgeInsets.all(10),
padding: EdgeInsets.all(10),
decoration: BoxDecoration(
border: Border.all(
color: Colors.grey.shade500,
width: .5,
style: BorderStyle.solid,
),
),
child: Text(string),
),
),
],
),
);
}
}