aman-kassa-flutter/lib/views/check/image_show_container.dart

132 lines
4.2 KiB
Dart

import 'dart:convert';
import 'package:aman_kassa_flutter/shared/app_colors.dart';
import 'package:aman_kassa_flutter/shared/ui_helpers.dart';
import 'package:aman_kassa_flutter/widgets/fields/busy_button.dart';
import 'package:flutter/material.dart';
import 'package:material_design_icons_flutter/material_design_icons_flutter.dart';
//import 'package:flutter/services.dart';
class ImageShowContainer extends StatelessWidget {
final ImageShowModel data;
ImageShowContainer(this.data);
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
//backgroundColor: fillColor,
title: Text(data.title),
),
body: ListView(
children: <Widget>[imageFromBase64String(data.data)],
),
floatingActionButton: MyFloatingActionButton(),
);
}
}
Padding imageFromBase64String(String base64String) {
return Padding(
padding: const EdgeInsets.symmetric(vertical: 10.0, horizontal: 8.0),
child: Image.memory(base64Decode(base64String)),
);
}
class ImageShowModel {
final String data;
final String title;
ImageShowModel(this.data, this.title);
}
class MyFloatingActionButton extends StatefulWidget {
@override
_MyFloatingActionButtonState createState() => _MyFloatingActionButtonState();
}
class _MyFloatingActionButtonState extends State<MyFloatingActionButton> {
bool showFab = true;
// String _batteryLevel = 'Unknown battery level.';
// static const platform = const MethodChannel('samples.flutter.dev/battery');
//
// Future<void> _getBatteryLevel() async {
// String batteryLevel;
// try {
// final int result = await platform.invokeMethod('sendMessage');
// print(result);
// batteryLevel = 'Battery level at $result % .';
// } on PlatformException catch (e) {
// batteryLevel = "Failed to get battery level: '${e.message}'.";
// }
//
// setState(() {
// _batteryLevel = batteryLevel;
// });
// }
@override
Widget build(BuildContext context) {
return showFab
? FloatingActionButton(
child: Icon(Icons.share),
onPressed: () {
var bottomSheetController = showBottomSheet(
context: context,
builder: (context) => Container(
padding: const EdgeInsets.symmetric(horizontal: 10.0 ),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.all(Radius.circular(15)),
boxShadow: [
BoxShadow(
blurRadius: 10, color: Colors.grey[300], spreadRadius: 5)
]),
//color: Colors.grey[900],
height: 280,
child: Column(
children: <Widget>[
verticalSpaceSmall,
BusyButton(title: 'Электронная почта', onPressed: () {} , mainColor: primaryColor, icon: Icons.mail, ),
verticalSpaceSmall,
BusyButton(title: 'WhatsApp', onPressed: () {} , mainColor: greenColor, icon: MdiIcons.whatsapp, ),
verticalSpaceSmall,
BusyButton(title: '', onPressed: () {} , mainColor: yellowColor, icon: Icons.share,),
],
)
));
showFoatingActionButton(false);
bottomSheetController.closed.then((value) {
showFoatingActionButton(true);
});
},
): Container() ;
}
void showFoatingActionButton(bool value) {
setState(() {
showFab = value;
});
}
}
class DecoratedTextField extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
alignment: Alignment.centerLeft,
padding: const EdgeInsets.symmetric(horizontal: 10, vertical: 10),
margin: const EdgeInsets.symmetric(horizontal: 10, vertical: 10),
decoration: BoxDecoration(
//color: fillColor, borderRadius: BorderRadius.circular(10)
),
child: TextField(
decoration: InputDecoration(
prefixIcon: Icon(Icons.mail_outline, color: primaryColor,),
labelStyle: TextStyle(color: primaryColor),
labelText: 'Отправить на Email',
),
));
}
}