zsw
5 months ago
7 changed files with 13 additions and 244 deletions
@ -1,125 +0,0 @@ |
|||||||
import 'package:dio/dio.dart'; |
|
||||||
import 'package:flutter/foundation.dart'; |
|
||||||
import 'package:flutter/material.dart'; |
|
||||||
import 'package:pdfx/pdfx.dart'; |
|
||||||
|
|
||||||
import '../../retrofit/retrofit_api.dart'; |
|
||||||
|
|
||||||
class PinchPage extends StatefulWidget { |
|
||||||
final String path; |
|
||||||
final int inlet; |
|
||||||
const PinchPage({Key key,this.path,this.inlet}) : super(key: key); |
|
||||||
|
|
||||||
@override |
|
||||||
State<PinchPage> createState() => _PinchPageState(); |
|
||||||
} |
|
||||||
|
|
||||||
enum DocShown { sample, tutorial, hello, password } |
|
||||||
|
|
||||||
class _PinchPageState extends State<PinchPage> { |
|
||||||
static const int _initialPage = 1; |
|
||||||
PdfControllerPinch _pdfControllerPinch; |
|
||||||
ApiService apiService; |
|
||||||
|
|
||||||
@override |
|
||||||
void initState() { |
|
||||||
apiService = ApiService( |
|
||||||
Dio(), |
|
||||||
context: context, |
|
||||||
); |
|
||||||
_pdfControllerPinch = PdfControllerPinch( |
|
||||||
document: PdfDocument.openData( |
|
||||||
apiService.getUrlFile(widget.path ?? "") |
|
||||||
), |
|
||||||
initialPage: _initialPage, |
|
||||||
); |
|
||||||
super.initState(); |
|
||||||
} |
|
||||||
|
|
||||||
@override |
|
||||||
void dispose() { |
|
||||||
_pdfControllerPinch.dispose(); |
|
||||||
super.dispose(); |
|
||||||
} |
|
||||||
|
|
||||||
@override |
|
||||||
Widget build(BuildContext context) { |
|
||||||
return widget.inlet == 0 ? Scaffold( |
|
||||||
backgroundColor: Colors.white, |
|
||||||
body: Column( |
|
||||||
children: [ |
|
||||||
Container( |
|
||||||
alignment: Alignment.topRight, |
|
||||||
padding: EdgeInsets.only(top: MediaQuery.of(context).padding.top,right:10), |
|
||||||
child: IconButton( |
|
||||||
icon: Icon(Icons.close,size: 30,color: Colors.black,), |
|
||||||
onPressed: (){ |
|
||||||
Navigator.of(context).pop(); |
|
||||||
}, |
|
||||||
), |
|
||||||
), |
|
||||||
Expanded(child: PdfViewPinch( |
|
||||||
builders: PdfViewPinchBuilders<DefaultBuilderOptions>( |
|
||||||
options: const DefaultBuilderOptions(), |
|
||||||
documentLoaderBuilder: (_) => |
|
||||||
const Center(child: CircularProgressIndicator()), |
|
||||||
pageLoaderBuilder: (_) => |
|
||||||
const Center(child: CircularProgressIndicator()), |
|
||||||
errorBuilder: (_, error) => Center(child: Text(error.toString())), |
|
||||||
), |
|
||||||
controller: _pdfControllerPinch, |
|
||||||
)), |
|
||||||
Container( |
|
||||||
padding:EdgeInsets.only(bottom:45,top:20), |
|
||||||
width: MediaQuery.of(context).size.width, |
|
||||||
child: Center( |
|
||||||
child: PdfPageNumber( |
|
||||||
controller: _pdfControllerPinch, |
|
||||||
builder: (_, loadingState, page, pagesCount) => Container( |
|
||||||
alignment: Alignment.center, |
|
||||||
child: Text( |
|
||||||
'$page/${pagesCount ?? 0}', |
|
||||||
style: const TextStyle(fontSize:16), |
|
||||||
), |
|
||||||
), |
|
||||||
), |
|
||||||
), |
|
||||||
), |
|
||||||
], |
|
||||||
), |
|
||||||
):Column( |
|
||||||
children: [ |
|
||||||
Expanded(child: Padding( |
|
||||||
padding: EdgeInsets.symmetric(vertical:200), |
|
||||||
child: PdfViewPinch( |
|
||||||
builders: PdfViewPinchBuilders<DefaultBuilderOptions>( |
|
||||||
options: const DefaultBuilderOptions(), |
|
||||||
documentLoaderBuilder: (_) => |
|
||||||
const Center(child: CircularProgressIndicator()), |
|
||||||
pageLoaderBuilder: (_) => |
|
||||||
const Center(child: CircularProgressIndicator()), |
|
||||||
errorBuilder: (_, error) => Center(child: Text(error.toString())), |
|
||||||
), |
|
||||||
controller: _pdfControllerPinch, |
|
||||||
), |
|
||||||
)), |
|
||||||
Container( |
|
||||||
padding:EdgeInsets.only(bottom:45,top:20), |
|
||||||
width: MediaQuery.of(context).size.width, |
|
||||||
child: Center( |
|
||||||
child: PdfPageNumber( |
|
||||||
controller: _pdfControllerPinch, |
|
||||||
builder: (_, loadingState, page, pagesCount) => Container( |
|
||||||
alignment: Alignment.center, |
|
||||||
child: Text( |
|
||||||
'$page/${pagesCount ?? 0}', |
|
||||||
style: const TextStyle(fontSize:16,color: Colors.white), |
|
||||||
), |
|
||||||
), |
|
||||||
), |
|
||||||
), |
|
||||||
), |
|
||||||
], |
|
||||||
); |
|
||||||
} |
|
||||||
} |
|
Loading…
Reference in new issue