Comments (8)
I was using a single controller in a list. But I tried with the local controller in the list item. It worked.
from screenshot.
Same here, any solutions?
from screenshot.
Are you using the same controller multiple times?
from screenshot.
I was using a single controller in a list. But I tried with the local controller in the list item. It worked.
Could you please expand on local controller? How exactly did you use it?
from screenshot.
I was using a single controller in a list. But I tried with the local controller in the list item. It worked.
Could you please expand on local controller? How exactly did you use it?
It may not be the best solution, but here is what I did.
Previously I made a single controller inside a screen i.e stateful widget and I was using it in the listview item.
To fix the issue. >>>
I made an independent widget for the listview item and made the controller in that widget, So now every item in the listview has its own controller.
from screenshot.
Thanks a lot. Could you please post your code? That would be very helpful!
from screenshot.
Thanks a lot. Could you please post your code? That would be very helpful!
Thanks a lot. Could you please post your code? That would be very helpful!
from screenshot.
@peter100u define the controller under listview itemBuilder,
the code might look weired but you can check:
itemScrollController: itemScrollController,
itemCount: arabicJuzzData.verses?.length ?? 0,
itemBuilder: (ctx, index) {
final currentVerse = arabicJuzzData.verses?[index];
final isMetadata = currentVerse?.textUthmaniTajweed == null;
if (isMetadata) {
final surahNumber = currentVerse!.number!;
final surahName = currentVerse.englishName!;
surahMap[surahNumber] = surahName;
currentJuzzSurahList.add(surahNumber.toString());
print("Current Juzz Surah $surahNumber");
}
if (isMetadata) {
return SurahHeadMeta(
containerColor: Colors.blueAccent,
englishName: currentVerse!.englishName!,
snumber: currentVerse.number!.toString(),
relevationType: currentVerse.revelationType!,
numberOfAyahs: currentVerse.numberOfAyahs!.toString(),
englishTranslation: currentVerse.englishNameTranslation!,
);
} else {
final globalKey = GlobalKey();
ScreenshotController screenshotController = ScreenshotController();
final verseNumber = currentVerse!.verseno!.split(':')[1];
final splittedSurah = currentVerse.verseno!.split(':')[0];
final editionIndex =
cumulativeAyahCount + currentSurahAyahCount;
currentSurahAyahCount++;
final surahName = surahMap[int.parse(splittedSurah)] ?? '';
Color? getContainerColor() {
if (currentVerse.obligatory != null &&
currentVerse.recommended != null) {
if (currentVerse.recommended!) {
return const Color(0xff023020);
} else if (currentVerse.obligatory!) {
return const Color(0xff8B0000);
}
}
return null;
}
return Screenshot(
controller: screenshotController,
key: globalKey,
child: JuzzReader(
onIcon1Pressed: () async {
// Capture the screenshot
Uint8List? image = await screenshotController.capture(
delay: const Duration(milliseconds: 10));
// Check if the image capture was successful
if (image != null) {
try {
// Save the image to the device's gallery
final result =
await ImageGallerySaver.saveImage(image);
// Check if image was saved successfully
if (result['isSuccess']) {
print('Image saved to gallery');
} else {
print('Failed to save image: ${result['error']}');
}
} catch (error) {
// Error handling if image save fails
print('Failed to save image: $error');
}
} else {
// Image capture failed
print('Failed to capture image');
}
},
onIcon5Pressed: () {
Get.toNamed(tafsir, arguments: {
'surahName': RxString(surahName),
'surahNumber': splittedSurah,
'ayahNumber': int.parse(verseNumber),
});
},
number: int.parse(verseNumber),
edition: editionJuzzData[editionIndex].text,
showNumber: true,
containerColor: getContainerColor(),
arabicTextStyle: TextStyle(
fontSize: fontsizesForArabic.value,
fontFamily: 'uthmanic_hafs',
),
arabicText:
"${currentVerse.textUthmaniTajweed} ${currentVerse.end}",
onIcon4Pressed: () {
showDialog(
context: context,
builder: (context) {
return AlertDialog(
title: const Text('Copy Text'),
content: Column(
mainAxisSize: MainAxisSize.min,
children: [
ListTile(
title: const Text('Copy Arabic Text'),
onTap: () {
Clipboard.setData(
ClipboardData(
text:
currentVerse.textUthmaniTajweed!,
),
);
ScaffoldMessenger.of(context)
.showSnackBar(
const SnackBar(
content: Text(
'Arabic text copied to clipboard'),
),
);
Navigator.pop(context);
},
),
ListTile(
title: const Text('Copy Edition Text'),
onTap: () {
Clipboard.setData(
ClipboardData(
text: editionJuzzData[editionIndex]
.text,
),
);
ScaffoldMessenger.of(context)
.showSnackBar(
const SnackBar(
content: Text(
'Edition text copied to clipboard'),
),
);
Navigator.pop(context);
},
),
],
),
);
},
);
},
),
);
}
},
);
from screenshot.
Related Issues (20)
- Uint8List has 0s while taking screenshot on IOS
- arguments don't match. const ViewConfiguration({ No named parameter with the name 'size'. HOT 1
- Can't print Text to screenshot image (using command line to export image) 💦 HOT 1
- No named parameter with the name 'size' :: vs. 2.3.0 issue with Flutter (Channel master, 3.21.0-9.0.pre.29, on macOS) HOT 12
- Flutter web use HTML renderer along with screenshot controller?
- Sometimes screenshot return back null captured image HOT 1
- The argument type 'Null Function(Uint8List)' can't be assigned to the parameter type 'FutureOr<dynamic> Function(Uint8List?)'. HOT 2
- How can I remove the corner radius in an image? HOT 2
- Long widget didn't work HOT 3
- Cannot capture Overlays HOT 1
- Capturing Screenshot doesn't work in HookWidget HOT 1
- Unable to capture width screenshot in Sony Xperia IV device
- No MediaQuery widget ancestor found. HOT 2
- Screenshot fails when trying to take a screenshot - Flutter Web when website is viewed from a mobile (ios) device. HOT 2
- Not build with new flutter 3.22.0 HOT 3
- Error (Xcode): ../../../.pub-cache/hosted/pub.dev/screenshot-2.4.0/lib/screenshot.dart:165:9: Error: No named parameter with the name 'logicalConstraints'. HOT 2
- Error: No named parameter with the name 'logicalConstraints'. HOT 7
- i have update 2.3.0 to 2.4.0 and getting this error . HOT 10
- Crashes on Linux / Flutter 3.22 HOT 1
- upgrade the package to support latest flutter version v3.22.1 HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from screenshot.