কীভাবে আপনি ঝাঁকুনির অ্যাপ্লিকেশনগুলিতে একটি স্প্ল্যাশ স্ক্রিন যুক্ত করতে যোগাযোগ করবেন? এটি অন্য কোনও সামগ্রীর আগে লোড হওয়া এবং প্রদর্শন করা উচিত। স্ক্যাফোল্ড (হোম: এক্স) উইজেট লোডের আগে রঙের একটি সংক্ষিপ্ত ফ্ল্যাশ রয়েছে।
কীভাবে আপনি ঝাঁকুনির অ্যাপ্লিকেশনগুলিতে একটি স্প্ল্যাশ স্ক্রিন যুক্ত করতে যোগাযোগ করবেন? এটি অন্য কোনও সামগ্রীর আগে লোড হওয়া এবং প্রদর্শন করা উচিত। স্ক্যাফোল্ড (হোম: এক্স) উইজেট লোডের আগে রঙের একটি সংক্ষিপ্ত ফ্ল্যাশ রয়েছে।
উত্তর:
আমি ফ্লটারে স্প্ল্যাশ স্ক্রিন করার আসল উপায়ে আরও কিছুটা আলোকপাত করতে চাই।
আমি এখানে কিছুটা ট্রেস অনুসরণ করেছি এবং আমি দেখেছি যে জিনিসগুলি ঝাঁকুনির স্প্ল্যাশ স্ক্রিনটি সম্পর্কে এত খারাপ দেখাচ্ছে না।
সম্ভবত বেশিরভাগ ডেভস (আমার মতো) ভাবছেন যে ফ্লুটারে ডিফল্টরূপে স্প্ল্যাশ স্ক্রিন নেই এবং তাদের এটি সম্পর্কে কিছু করা দরকার। একটি স্প্ল্যাশ স্ক্রিন রয়েছে তবে এটি সাদা পটভূমিতে রয়েছে এবং কেউই বুঝতে পারবেন না যে ডিফল্টরূপে আইওএস এবং অ্যান্ড্রয়েডের জন্য ইতিমধ্যে একটি স্প্ল্যাশ স্ক্রিন রয়েছে।
বিকাশকারীকে কেবলমাত্র যা করতে হবে তা হল ব্র্যান্ডিং চিত্রটি সঠিক জায়গায় স্থাপন করা এবং স্প্ল্যাশ স্ক্রিন ঠিক ঠিক সেইভাবেই কাজ শুরু করবে।
এখানে আপনি কীভাবে ধাপে ধাপে এটি করতে পারেন তা এখানে:
অ্যান্ড্রয়েডে প্রথম (কারণ আমার প্রিয় প্ল্যাটফর্মটি :))
আপনার এলোমেলো প্রকল্পে "অ্যান্ড্রয়েড" ফোল্ডারটি সন্ধান করুন।
অ্যাপ্লিকেশনটিতে ব্রাউজ করুন -> এসআরসি -> প্রধান -> রেজোল্ড ফোল্ডার এবং আপনার ব্র্যান্ডিং চিত্রের সমস্ত রূপগুলি সংশ্লিষ্ট ফোল্ডারে রাখুন। উদাহরণ স্বরূপ:
অ্যান্ড্রয়েড ফোল্ডারে ডিফল্টরূপে অঙ্কনযোগ্য-এমডিপিআই, অঙ্কনযোগ্য-এইচডিপিআই ইত্যাদি নেই তবে আমরা চাইলে সেগুলি তৈরি করতে পারি। এই সত্যের কারণে চিত্রগুলি মিপম্যাপ ফোল্ডারে স্থাপন করা দরকার। এছাড়াও স্প্ল্যাশ স্ক্রিনের ডিফল্ট এক্সএমএল কোডটি (অ্যান্ড্রয়েডে) @ ড্রপযোগ্য রিসোর্সের পরিবর্তে @ মিপম্যাপ ব্যবহার করতে চলেছে (আপনি চাইলে এটি পরিবর্তন করতে পারেন)।
অ্যান্ড্রয়েডের সর্বশেষ পদক্ষেপটি হ'ল / লঞ্চ_ব্যাকগ্রাউন্ড.এক্সএমএল ফাইলের কয়েকটি এক্সএমএল কোডকে নিয়ন্ত্রণ করা। অ্যাপ্লিকেশনটিতে ব্রাউজ করুন -> src -> প্রধান -> পুনরায়-> অঙ্কনযোগ্য এবং ওপেন লঞ্চ_ব্যাকগ্রাউন্ড.এক্সএমএল। এই ফাইলটির অভ্যন্তরে, আপনি স্ল্যাশ পর্দার পটভূমি কেন সাদা তা দেখতে পাবেন। আমরা দ্বিতীয় ধাপে রেখেছি এমন ব্র্যান্ডিং চিত্রটি প্রয়োগ করতে, আপনার লঞ্চ_ব্যাকগ্রাউন্ড.এক্সএমএল ফাইলের কয়েকটি এক্সএমএল কোডকে আমাদের আপত্তিহীন করতে হবে। পরিবর্তনের পরে কোডটি দেখতে এমন হওয়া উচিত:
<!--<item android:drawable="@android:color/white" />-->
<item>
<bitmap
android:gravity="center"
android:src="@mipmap/your_image_name" />
</item>
দয়া করে মনোযোগ দিন যে আমরা সাদা ব্যাকগ্রাউন্ডের জন্য এক্সএমএল কোডটি মন্তব্য করি এবং মিপম্যাপ চিত্রটি সম্পর্কে কোডটি অসম্মানিত করি। যদি কেউ আগ্রহী হন তবে ফাইলের প্রবর্তন_ব্যাকগ্রাউন্ড.এক্সএমএল স্টাইল.এক্সএমএল ফাইলটিতে ব্যবহৃত হয়।
আইওএসে দ্বিতীয়:
আপনার ঝাঁকুনির প্রকল্পে "আইওএস" ফোল্ডারটি সন্ধান করুন।
রানার -> Assets.xcassets -> LaunchImage.imageset এ ব্রাউজ করুন। LaunchImage.png, LaunchImage@2x.png, ইত্যাদি থাকা উচিত Now এখন আপনাকে এই ব্র্যান্ডিং ইমেজ ভেরিয়েন্টের সাথে এই চিত্রগুলি প্রতিস্থাপন করতে হবে। উদাহরণ স্বরূপ:
আমি যদি ভুল না হই তবে LaunchImage@4x.png ডিফল্টরূপে উপস্থিত না থাকলেও আপনি সহজেই এটি তৈরি করতে পারেন। যদি LaunchImage@4x.png উপস্থিত না থাকে, আপনাকে এটিকে Contents.json ফাইলটিতেও ঘোষণা করতে হবে, যা চিত্রগুলির মতো একই ডিরেক্টরিতে রয়েছে। পরিবর্তনের পরে আমার কনটেন্টস.জসন ফাইলটি দেখতে এমন দেখাচ্ছে:
{
"images" : [
{
"idiom" : "universal",
"filename" : "LaunchImage.png",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "LaunchImage@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "LaunchImage@3x.png",
"scale" : "3x"
},
{
"idiom" : "universal",
"filename" : "LaunchImage@4x.png",
"scale" : "4x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
এটি আপনার দরকার হবে, পরের বার আপনি যখন আপনার অ্যাপটি চালাবেন তখন অ্যান্ড্রয়েড বা আইওএসে আপনার যুক্ত হওয়া ব্র্যান্ডিং চিত্রের সাথে ডান স্প্ল্যাশ স্ক্রিন থাকা উচিত।
ধন্যবাদ
Cannot resolve symbol '@mipmap/ic_launcher'
অ্যান্ড্রয়েড স্টুডিও 3.1.1 এ ত্রুটি পেয়েছি (এমনকি ক্যাশে পুনর্নির্মাণের পরেও) তবে অ্যাপটি সংকলন করে ত্রুটি ছাড়াই চলেছে এবং লঞ্চার গ্রাফিক প্রদর্শিত হয়েছে।
আপনি যদি flutter create
আপনার প্রকল্পটি ডি করেন তবে আপনি https://flutter.io/assets-and-images/#updating-the-launch-screen এ পদক্ষেপগুলি অনুসরণ করতে পারেন ।
বিড়াল আসলে আমাদের অ্যাপ্লিকেশন স্প্ল্যাশ স্ক্রিন যোগ করার একটি সহজ উপায় দেয়। আমরা অন্যান্য অ্যাপ্লিকেশন স্ক্রিন ডিজাইন করার সাথে সাথে প্রথমে আমাদের একটি বেসিক পৃষ্ঠা ডিজাইন করা দরকার। আপনাকে এটিকে স্টেটফুল উইজেট তৈরি করতে হবে যেহেতু এর সেকেন্ডে কয়েক দশকের মধ্যে রাজ্যের পরিবর্তন হবে।
import 'dart:async';
import 'package:flutter/material.dart';
import 'home.dart';
class SplashScreen extends StatefulWidget {
@override
_SplashScreenState createState() => _SplashScreenState();
}
class _SplashScreenState extends State<SplashScreen> {
@override
void initState() {
super.initState();
Timer(
Duration(seconds: 3),
() => Navigator.of(context).pushReplacement(MaterialPageRoute(
builder: (BuildContext context) => HomeScreen())));
}
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.white,
body: Center(
child: Image.asset('assets/splash.png'),
),
);
}
}
লজিক ইনসাইড initState () , একটি কল টাইমার () সময়কাল সঙ্গে, যেমন তোমার ইচ্ছা, আমি এটা 3 সেকেন্ডের তৈরী একবার সম্পন্ন ধাক্কা আমাদের আবেদন হোম স্ক্রীনে ন্যাভিগেটর।
দ্রষ্টব্য: অ্যাপ্লিকেশনটিতে কেবল একবার স্প্ল্যাশ স্ক্রিন প্রদর্শন করা উচিত, ব্যবহারকারীকে ফিরে বোতাম টিপে আবার এটিতে যাওয়া উচিত নয়। এর জন্য, আমরা নেভিগেটর.পুষ্প রিপ্লেসমেন্ট () ব্যবহার করি , এটি একটি নতুন স্ক্রিনে স্থানান্তরিত করবে এবং নেভিগেশন ইতিহাসের স্ট্যাক থেকে পূর্ববর্তী স্ক্রীনটি সরিয়ে ফেলবে।
আরও ভাল বোঝার জন্য, ফ্লাটার দেখুন: নিজের স্প্ল্যাশ স্ক্রিনটি ডিজাইন করুন
এখনও এর কোনও ভাল উদাহরণ নেই, তবে প্রতিটি প্ল্যাটফর্মের জন্য দেশীয় সরঞ্জামগুলি ব্যবহার করে আপনি নিজেই এটি করতে পারেন:
আইওএস: https://docs.nativescript.org/publishing/creating-launch-screens-ios
অ্যান্ড্রয়েড: https://www.bignerdranch.com/blog/splash-screens-the-right-way/
স্প্ল্যাশ পর্দার জন্য উদাহরণ কোডের আপডেটের জন্য 8147 ইস্যুতে সাবস্ক্রাইব করুন। যদি স্প্ল্যাশ স্ক্রিন এবং আইওএসের অ্যাপ্লিকেশনটির মধ্যে কালো ঝাঁকুনি আপনাকে বিরক্ত করে, আপডেটের জন্য 8127 ইস্যুতে সাবস্ক্রাইব করুন ।
সম্পাদনা করুন: 31 আগস্ট, 2017 পর্যন্ত, স্প্ল্যাশ স্ক্রিনগুলির জন্য উন্নত সমর্থনটি এখন নতুন প্রকল্পের টেমপ্লেটে পাওয়া যাবে। # 11505 দেখুন ।
অ্যান্ড্রয়েডের জন্য, অ্যান্ড্রয়েড> অ্যাপ্লিকেশন> এসসিআর> প্রধান> পুনঃআরঙ্কযোগ্য> লঞ্চের_ব্যাকগ্রাউন্ড.এক্সএমএল এ যান
এখন এটি আপত্তিহীন করুন এবং আপনার চিত্রের অবস্থানের সাথে @ মিপম্যাপ / লঞ্চ_আইমেজ প্রতিস্থাপন করুন ।
<item>
<bitmap
android:gravity="center"
android:src="@mipmap/launch_image" />
</item>
আপনি এখানে আপনার পর্দার রঙ পরিবর্তন করতে পারেন -
<item android:drawable="@android:color/white" />
এলোমেলোভাবে স্প্ল্যাশ স্ক্রিন যুক্ত করার সহজ উপায় হ'ল এই প্যাকেজটি: https://pub.dev/packages/flutter_native_splash
আপনার প্রকল্পের পবস্পেক.আইএমএল ফাইলটিতে আপনার সেটিংস যুক্ত করুন বা আপনার সেটিংসের সাথে ফ্লুটটার_নেটিভ_স্প্ল্যাশ.আইএমএল নামের আপনার মূল প্রকল্প ফোল্ডারে একটি ফাইল তৈরি করুন।
flutter_native_splash:
image: assets/images/splash.png
color: "42a5f5"
চিত্র অবশ্যই একটি পিএনজি ফাইল হতে হবে।
আপনি # রঙেও ব্যবহার করতে পারেন। রঙ: "# 42a5f5" আপনি যদি নির্দিষ্ট প্ল্যাটফর্মের জন্য স্প্ল্যাশ স্ক্রিন তৈরি করতে না চান তবে আপনি অ্যান্ড্রয়েড বা আইওএসকেও মিথ্যাতে সেট করতে পারেন।
flutter_native_splash:
image: assets/images/splash.png
color: "42a5f5"
android: false
যদি আপনার ছবিতে সমস্ত উপলব্ধ পর্দা (প্রস্থ এবং উচ্চতা) ব্যবহার করা উচিত তবে আপনি পূরণের সম্পত্তিটি ব্যবহার করতে পারেন।
flutter_native_splash:
image: assets/images/splash.png
color: "42a5f5"
fill: true
দ্রষ্টব্য: আইওএস স্প্ল্যাশ স্ক্রিনগুলির জন্য পূরণের সম্পত্তিটি এখনও প্রয়োগ করা হয়নি।
আপনি যদি অ্যান্ড্রয়েডে পূর্ণ স্ক্রিন স্প্ল্যাশ স্ক্রিনটি অক্ষম করতে চান তবে আপনি অ্যান্ড্রয়েড_ডিজিয়েবল_ফুলস্ক্রিন সম্পত্তি ব্যবহার করতে পারেন।
flutter_native_splash:
image: assets/images/splash.png
color: "42a5f5"
android_disable_fullscreen: true
আপনার সেটিংস যুক্ত করার পরে, সাথে প্যাকেজটি চালান
flutter pub pub run flutter_native_splash:create
প্যাকেজটি শেষ হয়ে গেলে আপনার স্প্ল্যাশ স্ক্রিনটি প্রস্তুত।
আপনার কোডের নীচে চেষ্টা করা উচিত, আমার জন্য কাজ
import 'dart:async';
import 'package:attendance/components/appbar.dart';
import 'package:attendance/homepage.dart';
import 'package:flutter/material.dart';
class _SplashScreenState extends State<SplashScreen>
with SingleTickerProviderStateMixin {
void handleTimeout() {
Navigator.of(context).pushReplacement(new MaterialPageRoute(
builder: (BuildContext context) => new MyHomePage()));
}
startTimeout() async {
var duration = const Duration(seconds: 3);
return new Timer(duration, handleTimeout);
}
@override
void initState() {
// TODO: implement initState
super.initState();
_iconAnimationController = new AnimationController(
vsync: this, duration: new Duration(milliseconds: 2000));
_iconAnimation = new CurvedAnimation(
parent: _iconAnimationController, curve: Curves.easeIn);
_iconAnimation.addListener(() => this.setState(() {}));
_iconAnimationController.forward();
startTimeout();
}
@override
Widget build(BuildContext context) {
return new Scaffold(
body: new Scaffold(
body: new Center(
child: new Image(
image: new AssetImage("images/logo.png"),
width: _iconAnimation.value * 100,
height: _iconAnimation.value * 100,
)),
),
);
}
}
ব্যক্তি যিনি ইমেজ মত ত্রুটি পাচ্ছেন নিশ্চিত করুন যে আপনি যোগ করা হয় যাচাই উত্তর করতে প্রয়োগের পরে পাওয়া যায়নি @ mipmap / ic_launcher পরিবর্তে @ mipmap / ic_launcher.png
@ কলিন জ্যাকসন এবং @ স্নিপার উভয়ই সঠিক। আপনি যথাক্রমে অ্যান্ড্রয়েড এবং আইওএসে লঞ্চ চিত্রগুলি সেট আপ করতে এই পদক্ষেপগুলি অনুসরণ করতে পারেন। তারপরে আপনার মাই অ্যাপে (), আপনার আরম্ভের স্টেটে (), আপনি টাইমার সেট আপ করতে বা কোনও এপিআই কল করতে ফিউচার.ডিলেড ব্যবহার করতে পারেন। ভবিষ্যত থেকে প্রতিক্রিয়া ফিরে না আসা পর্যন্ত আপনার লঞ্চ আইকনগুলি প্রদর্শিত হবে এবং তারপরে প্রতিক্রিয়াটি আসার সাথে সাথে আপনি স্প্ল্যাশ স্ক্রিনের পরে আপনি যেতে চান এমন পর্দায় যেতে পারেন। আপনি এই লিঙ্কটি দেখতে পাবেন: স্প্ল্যাশ স্প্ল্যাশ স্ক্রিন
নীচের মতো একটি পৃষ্ঠা যুক্ত করা এবং রাউটিংয়ে সহায়তা হতে পারে
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:flutkart/utils/flutkart.dart';
import 'package:flutkart/utils/my_navigator.dart';
class SplashScreen extends StatefulWidget {
@override
_SplashScreenState createState() => _SplashScreenState();
}
class _SplashScreenState extends State<SplashScreen> {
@override
void initState() {
// TODO: implement initState
super.initState();
Timer(Duration(seconds: 5), () => MyNavigator.goToIntro(context));
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Stack(
fit: StackFit.expand,
children: <Widget>[
Container(
decoration: BoxDecoration(color: Colors.redAccent),
),
Column(
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
Expanded(
flex: 2,
child: Container(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
CircleAvatar(
backgroundColor: Colors.white,
radius: 50.0,
child: Icon(
Icons.shopping_cart,
color: Colors.greenAccent,
size: 50.0,
),
),
Padding(
padding: EdgeInsets.only(top: 10.0),
),
Text(
Flutkart.name,
style: TextStyle(
color: Colors.white,
fontWeight: FontWeight.bold,
fontSize: 24.0),
)
],
),
),
),
Expanded(
flex: 1,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
CircularProgressIndicator(),
Padding(
padding: EdgeInsets.only(top: 20.0),
),
Text(
Flutkart.store,
softWrap: true,
textAlign: TextAlign.center,
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 18.0,
color: Colors.white),
)
],
),
)
],
)
],
),
);
}
}
আপনি যদি অনুসরণ করতে চান তবে দেখুন: https://www.youtube.com/watch?v=FNBuo-7zg2Q
আপনি এটি করতে পারেন একাধিক উপায়, তবে আমি ব্যবহার করা সবচেয়ে সহজ উপায়:
লঞ্চ আইকনগুলির জন্য আমি ফ্লাটার লাইব্রেরি ফ্লার্ট লাঞ্চার আইকনটি ব্যবহার করি
কাস্টম স্প্ল্যাশ স্ক্রিনের জন্য আমি বিভিন্ন স্ক্রিন রেজোলিউশন তৈরি করি এবং তারপরে অ্যান্ড্রয়েডের রেজোলিউশন অনুযায়ী মাইপম্যাপ ফোল্ডারে স্প্ল্যাশ চিত্রগুলি যুক্ত করি।
শেষ অংশটি অ্যান্ড্রয়েডের রেজ ফোল্ডারে অঙ্কনযোগ্য ফোল্ডারে লঞ্চ_ব্যাকগ্রাউন্ড.এক্সএমএল সামঞ্জস্য করছে।
নীচের মত দেখতে আপনার কোডটি পরিবর্তন করুন:
<?xml version="1.0" encoding="utf-8"?>
<!-- Modify this file to customize your launch splash screen -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!-- <item android:drawable="@android:color/white" />
<item android:drawable="@drawable/<splashfilename>" /> --> -->
<!-- You can insert your own image assets here -->
<item>
<bitmap
android:gravity="center"
android:src="@mipmap/<Your splash image name here as per the mipmap folder>"/>
</item>
</layer-list>
কয়েকটা ডেভস আমি স্প্ল্যাশটিকে অঙ্কনযোগ্য হিসাবে যুক্ত করতে দেখেছি, আমি এটি চেষ্টা করেছিলাম তবে কোনওভাবে বিল্ডটি ফ্লটার 1.0.0.0 এবং ডার্ট এসডিকে 2.0+ এ ব্যর্থ হয়। অতএব আমি বিটম্যাপ বিভাগে স্প্ল্যাশ যুক্ত করতে পছন্দ করি।
আইওএস স্প্ল্যাশ-স্ক্রিন তৈরি করা বরং সহজ।
আইওএসের রানার ফোল্ডারে কেবলমাত্র আপনার কাস্টম স্প্ল্যাশ স্ক্রিন চিত্রগুলি LaunchImage.png @ 2x, @ 3x, @ 4x এর মতো একই নামের সাথে LaunchImage.png ফাইলগুলি আপডেট করুন।
কেবলমাত্র একটি সংযোজন আমি LaunchImage.imageset এ 4x ইমেজ থাকা ভাল বলে মনে করি। 4x স্কেল বিকল্প যুক্ত করতে 3x স্কেল নীচে নিম্নলিখিত লাইনগুলি দিয়ে কেবল আপনার কোড.জসনে আপনার আপডেট করুন:
{
"idiom" : "universal",
"filename" : "LaunchImage@4x.png",
"scale" : "4x"
}
আপনার উপাদান অ্যাপ্লিকেশন তৈরি করুন
=> নির্ভরতা যুক্ত করুন
=> আমদানি করুন 'প্যাকেজ: স্প্ল্যাশস্ক্রিন / স্প্ল্যাশস্ক্রিন.ডার্ট';
import 'package:flutter/material.dart';
import 'package:splashscreen/splashscreen.dart';
import 'package:tic_tac_toe/HomePage.dart';
void main(){
runApp(
MaterialApp(
darkTheme: ThemeData.dark(),
debugShowCheckedModeBanner: false,
home: new MyApp(),
)
);
}
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => new _MyAppState();
}
class _MyAppState extends State<MyApp> {
@override
Widget build(BuildContext context) {
return new SplashScreen(
seconds: 6,
navigateAfterSeconds: new HomePage(),
title: new Text('Welcome',
style: new TextStyle(
fontWeight: FontWeight.bold,
fontSize: 26.0,
color: Colors.purple,
),
),
image: Image.asset("images/pic9.png"),
backgroundColor: Colors.white,
photoSize: 150.0,
);
}
}
এর মতো চূড়ান্ত স্ক্রিন আউটপুট আপনার প্রয়োজনীয়তা অনুসারে দ্বিতীয় পরিবর্তন করতে পারে বৃত্তটি বৃত্তাকার বৃত্তাকার হবে
এটি ত্রুটি মুক্ত এবং উত্তোলনের মধ্যে গতিশীল স্প্ল্যাশ স্ক্রিন যুক্ত করার সেরা উপায়।
MAIN.DART
import 'package:flutter/material.dart';
import 'constant.dart';
void main() => runApp(MaterialApp(
title: 'GridView Demo',
home: SplashScreen(),
theme: ThemeData(
primarySwatch: Colors.red,
accentColor: Color(0xFF761322),
),
routes: <String, WidgetBuilder>{
SPLASH_SCREEN: (BuildContext context) => SplashScreen(),
HOME_SCREEN: (BuildContext context) => BasicTable(),
//GRID_ITEM_DETAILS_SCREEN: (BuildContext context) => GridItemDetails(),
},
));
SPLASHSCREEN.DART
import 'dart:async';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:app_example/constants.dart';
class SplashScreen extends StatefulWidget {
@override
SplashScreenState createState() => new SplashScreenState();
}
class SplashScreenState extends State<SplashScreen>
with SingleTickerProviderStateMixin {
var _visible = true;
AnimationController animationController;
Animation<double> animation;
startTime() async {
var _duration = new Duration(seconds: 3);
return new Timer(_duration, navigationPage);
}
void navigationPage() {
Navigator.of(context).pushReplacementNamed(HOME_SCREEN);
}
@override
dispose() {
animationController.dispose();
super.dispose();
}
@override
void initState() {
super.initState();
animationController = new AnimationController(
vsync: this,
duration: new Duration(seconds: 2),
);
animation =
new CurvedAnimation(parent: animationController, curve: Curves.easeOut);
animation.addListener(() => this.setState(() {}));
animationController.forward();
setState(() {
_visible = !_visible;
});
startTime();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Stack(
fit: StackFit.expand,
children: <Widget>[
new Column(
mainAxisAlignment: MainAxisAlignment.end,
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Padding(
padding: EdgeInsets.only(bottom: 30.0),
child: new Image.asset(
'assets/images/powered_by.png',
height: 25.0,
fit: BoxFit.scaleDown,
),
)
],
),
new Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
new Image.asset(
'assets/images/logo.png',
width: animation.value * 250,
height: animation.value * 250,
),
],
),
],
),
);
}
}
CONSTANTS.DART
String SPLASH_SCREEN='SPLASH_SCREEN';
String HOME_SCREEN='HOME_SCREEN';
HOMESCREEN.DART
import 'package:flutter/material.dart';
class BasicTable extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text("Table Widget")),
body: Center(child: Text("Table Widget")),
);
}
}
জলধি ভট্টের কোডটি আমার পক্ষে কাজ করে না।
ফ্লুর একটি ন্যাভিগেটর অপারেশনটিকে এমন একটি প্রসঙ্গে অনুরোধ করেছে যাতে কোনও নেভিগেটর অন্তর্ভুক্ত থাকে না '
আমি এই নিবন্ধে উল্লিখিত হিসাবে, রুটগুলি ব্যবহার করে ন্যাভিগেটর প্রসঙ্গটি আরম্ভকারী অন্য উপাদানটির অভ্যন্তরে ন্যাভিগেটর ভোক্তা উপাদানটিকে মোড়ানো কোডটি সংশোধন করেছি ।
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:my-app/view/main-view.dart';
class SplashView extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
home: Builder(
builder: (context) => new _SplashContent(),
),
routes: <String, WidgetBuilder>{
'/main': (BuildContext context) => new MainView()}
);
}
}
class _SplashContent extends StatefulWidget{
@override
_SplashContentState createState() => new _SplashContentState();
}
class _SplashContentState extends State<_SplashContent>
with SingleTickerProviderStateMixin {
var _iconAnimationController;
var _iconAnimation;
startTimeout() async {
var duration = const Duration(seconds: 3);
return new Timer(duration, handleTimeout);
}
void handleTimeout() {
Navigator.pushReplacementNamed(context, "/main");
}
@override
void initState() {
super.initState();
_iconAnimationController = new AnimationController(
vsync: this, duration: new Duration(milliseconds: 2000));
_iconAnimation = new CurvedAnimation(
parent: _iconAnimationController, curve: Curves.easeIn);
_iconAnimation.addListener(() => this.setState(() {}));
_iconAnimationController.forward();
startTimeout();
}
@override
Widget build(BuildContext context) {
return new Center(
child: new Image(
image: new AssetImage("images/logo.png"),
width: _iconAnimation.value * 100,
height: _iconAnimation.value * 100,
)
);
}
}
আপনি যদি কোনও দ্বিতীয় স্প্ল্যাশ স্ক্রিন চান (দেশীয়ের পরে), এখানে কাজ করার একটি সাধারণ উদাহরণ এখানে:
class SplashPage extends StatelessWidget {
SplashPage(BuildContext context) {
Future.delayed(const Duration(seconds: 3), () {
// Navigate here to next screen
});
}
@override
Widget build(BuildContext context) {
return Text('Splash screen here');
}
}
বিড়ম্বনা আপনাকে ডিফল্টরূপে স্প্ল্যাশ স্ক্রিন রাখার ক্ষমতা সরবরাহ করে তবে অনেকগুলি প্লাগইন রয়েছে যা কাজটি করতে পারে। আপনি যদি কাজের জন্য একটি প্লাগইন ব্যবহার করতে না চান এবং আপনি উদ্বেগ প্রকাশ করেছেন যে একটি নতুন প্লাগইন যুক্ত করা আপনার অ্যাপের আকারকে প্রভাবিত করতে পারে। তাহলে আপনি এটি এটি করতে পারেন।
অ্যান্ড্রয়েডের জন্য
লঞ্চ_ব্যাকগ্রাউন্ড.এক্সএমএল খুলুন তারপরে আপনি স্প্ল্যাশ স্ক্রিন চিত্র বা আপনার পছন্দসই গ্রেডিয়েন্ট রঙ রাখতে পারেন। আপনার ব্যবহারকারীরা যখন আপনার অ্যাপটি খুলবে তখন এটিই প্রথম জিনিসটি দেখবে।
আইওএসের জন্য
এক্সকোড ব্যবহার করে আপনার অ্যাপ্লিকেশনটি খুলুন, রানার> অ্যাসেট.এক্সক্যাসেটস> লঞ্চ আইমেজে ক্লিক করুন, আপনি এখানে চিত্রটি যুক্ত করতে পারেন। আপনি যদি পজিশন লঞ্চ স্ক্রিন চিত্রটি গ্রহণ করতে চান বা এটি দেখতে চান তবে আপনি এটি LaunchScreen.storyboard এ সম্পাদনা করতে পারেন।
আপনার ঝাঁকুনির অ্যাপ্লিকেশনটির জন্য আইওএস এবং অ্যান্ড্রয়েড প্ল্যাটফর্ম উভয়টিতে স্প্ল্যাশ স্ক্রিনটি কনফিগার করার পদক্ষেপ এখানে রয়েছে।
আইওএস প্ল্যাটফর্ম
অ্যাপল অ্যাপ স্টোরে জমা দেওয়া সমস্ত অ্যাপ্লিকেশনগুলিকে অবশ্যই অ্যাপ্লিকেশনটির লঞ্চ স্ক্রিন সরবরাহ করতে একটি এক্সকোড স্টোরিবোর্ড ব্যবহার করতে হবে। আসুন এটি 3 টি পদক্ষেপে করুন: -
পদক্ষেপ 1 : আপনার অ্যাপ্লিকেশন ডিরেক্টরিটির মূল থেকে আইওএস / রানার.এক্সকোর্সস্পেস খুলুন।
পদক্ষেপ 2 : প্রকল্প ন্যাভিগেটর থেকে রানার / অ্যাসেটস এক্সক্যাসেট নির্বাচন করুন এবং সমস্ত আকারের আপনার লঞ্চ চিত্রগুলি টেনে আনুন (2x, 3x ইত্যাদি)। আপনি https://appicon.co/#image-sets থেকে বিভিন্ন আকারের চিত্রও তৈরি করতে পারেন
পদক্ষেপ 3 : আপনি দেখতে পাচ্ছেন যে লঞ্চস্ক্রিন. স্টোরবোর্ড ফাইলটি সরবরাহিত চিত্র দেখায়, এখানে আপনি কেবল চিত্রটি টেনে চিত্রের অবস্থান পরিবর্তন করতে পারেন। আরও তথ্যের জন্য দয়া করে অফিসিয়াল ডকুমেন্টেশন https://developer.apple.com/design/human-interface-guidlines/ios/visual-design/launch-screen/ দেখুন
অ্যান্ড্রয়েড প্ল্যাটফর্ম
অ্যান্ড্রয়েডে, আপনার অ্যান্ড্রয়েড অ্যাপ্লিকেশন আরম্ভ করার সময় একটি লঞ্চ স্ক্রিন প্রদর্শিত হয়। আসুন 3 টি ধাপে এই লঞ্চ পর্দা সেট করুন: -
পদক্ষেপ 1 : অ্যান্ড্রয়েড / অ্যাপ্লিকেশন / এসসিআর / প্রধান / রেজো / ড্রয়যোগ্য / লঞ্চ_ব্যাকগ্রাউন্ড.এক্সএমএল ফাইল খুলুন।
পদক্ষেপ 2 : 4 নং লাইনে আপনি পছন্দসই রঙ নির্বাচন করতে পারেন: -
<item android:drawable="@android:color/white" />
পদক্ষেপ 3 : 10 নং লাইনে আপনি চিত্রটি পরিবর্তন করতে পারবেন: -
android:src="@mipmap/launch_image"
সবই, তুমি শেষ! শুভ কোডিং :)
অ্যান্ড্রয়েড
অ্যাপ্লিকেশন -> এসআরসি -> প্রধান -> পুনরায় -> ড্রবেল>> লঞ্চ_ব্যাকগ্রাউন্ড.এক্সএমএল এবং এর জন্য মন্তব্য করা ব্লকটি আপত্তিহীন করুন
<item>
<bitmap
android:gravity="center"
android:src="@mipmap/launch_image" /></item>
কোন এক মুখ ভালো কোডিং পরে ত্রুটি
স্থানীয় অ্যান্ড্রয়েড মত কমবে অ্যান্ড্রয়েড স্টুডিও বা বাতিল ক্যাশে এবং reset.This সিস্টেম সাথে ব্যবহারের সিঙ্ক আমার সমস্যা ঝাপটানি ডিবাগ মোডে স্প্ল্যাশ পর্দা ক্লিক করুন.মুছে দেওয়ার পরে বিল্ড কিছু সময় নিতে নিতে মীমাংসিত
ফ্লাটার.দেব ইতিমধ্যে এর জন্য সর্বোত্তম উত্তর দেয়, এটি কোনও সমস্যা নয়, সমস্যা নয়, কেবল কনফিগারেশন। স্রেফ পড়ার জন্য সময় নিন এবং সমস্ত কিছু সমাধান হয়ে যাবে। দিনটি সকলের ভালো কাটুক.
https://flutter.dev/docs/development/ui/advanced/splash-screen
আপনি এটি দুটি উপায়ে তৈরি করতে পারেন
আমি সাদা পর্দা অপসারণ এবং স্প্ল্যাশ স্ক্রিন প্রদর্শন এখানে একটি সম্পূর্ণ ব্যাখ্যা পেয়েছি
SplashScreen(
seconds: 3,
navigateAfterSeconds: new MyApp(),
// title: new Text(
// 'Welcome In SplashScreen',
// style: new TextStyle(fontWeight: FontWeight.bold, fontSize: 20.0),
// ),
image: new Image.network('https://upload.wikimedia.org/wikipedia/commons/thumb/b/bd/Tesla_Motors.svg/1200px-Tesla_Motors.svg.png'),
backgroundColor: Colors.white,
styleTextUnderTheLoader: new TextStyle(),
photoSize: 150.0,
loaderColor: Colors.black),
),
);