E41220983_MuhamadSugengCahy.../praresi/lib/overlays/bubble_entry.dart

98 lines
3.2 KiB
Dart

import 'package:flutter/material.dart';
// import 'package:flutter_overlay_window/flutter_overlay_window.dart';
@pragma("vm:entry-point")
void overlayMain() {
runApp(const MaterialApp(
debugShowCheckedModeBanner: false,
home: OverlayBubble(),
));
}
class OverlayBubble extends StatefulWidget {
const OverlayBubble({super.key});
@override
State<OverlayBubble> createState() => _OverlayBubbleState();
}
class _OverlayBubbleState extends State<OverlayBubble> {
bool expanded = false;
final TextEditingController controller = TextEditingController();
@override
Widget build(BuildContext context) {
return Material(
color: Colors.transparent,
child: Stack(
children: [
if (expanded)
Positioned(
right: 80,
bottom: 50,
child: Container(
width: 250,
padding: const EdgeInsets.all(12),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(16),
boxShadow: const [BoxShadow(color: Colors.black26, blurRadius: 8)],
),
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
const Text(
'Salin / Tulis Alamat',
style: TextStyle(fontWeight: FontWeight.bold),
),
const SizedBox(height: 8),
TextField(
controller: controller,
maxLines: 3,
decoration: const InputDecoration(
hintText: 'Masukkan alamat di sini...',
border: OutlineInputBorder(),
),
),
const SizedBox(height: 8),
Row(
mainAxisAlignment: MainAxisAlignment.end,
children: [
TextButton(
onPressed: () => setState(() => expanded = false),
child: const Text('Tutup')),
ElevatedButton(
onPressed: () async {
// await FlutterOverlayWindow.shareData(controller.text);
controller.clear();
},
child: const Text('Kirim'),
),
],
)
],
),
),
),
Positioned(
right: 10,
bottom: 10,
child: GestureDetector(
onTap: () => setState(() => expanded = !expanded),
child: Container(
width: 70,
height: 70,
decoration: const BoxDecoration(
color: Colors.blueAccent,
shape: BoxShape.circle,
boxShadow: [BoxShadow(color: Colors.black26, blurRadius: 8)],
),
child: const Icon(Icons.message, color: Colors.white, size: 32),
),
),
)
],
),
);
}
}