شارك المقالة

التعامل مع وضعيات الشاشة افقي وعمودي باستخدام OrientationBuilder في flutter

 


التعامل مع وضعيات الشاشة افقي وعمودي باستخدام OrientationBuilder في flutter

في درس اليوم سوف نتعرف على كيفية التعامل مع ابعاد الشاشات المختلفه في flutter وفي هذا الدرس سوف يكون اول درس في هذه السلسله وسوف نبدء معكم بتعلم فكرة عمل OrientationBuilder  وهي بكل بساطة عباره عن خاصية تسمح لنا بتحديد ابعاد الشاشه بكل سهوله انه عليك ان يكون الbody يبدء ب OrientationBuilder وبعدها تحتاج منك builder وهو يحتاج الى (context , orientation)  وبعدها نقوم بعمل تاكد اذا كانت الحالة صحيحه ام لا واذا كانت كذلك سوف يتم ارجاع التصميم عباره عن مجموعة من القوائم التي تحت بعضها واذا يكن كذلك فهذا يدل ان الهاتف في الوضع الافقي ولذلك سوف نقوم بتقسيم الشاشه الى 3 اجزاء ويظهر في السطر الواحد ثلاث عناصر .



دون إجراء أي مقارنات مع الأنظمة الأساسية الأخرى ، إليك بعض الميزات والسمات التي يمكن أن تغريك بتجربة Flutter ، اولا الإنتاجية عالية. يمكنك استخدام نفس قاعدة الشفرة لتطبيقات iOS و Android لأن Flutter متعدد الأنظمة الأساسية. سيوفر لك هذا بلا شك الوقت والمال.


الثانية اداء ممتاز. يجمع Dart إلى التعليمات البرمجية الأصلية ، ويوفر Flutter عناصر واجهة المستخدم الخاصة به ، لذلك ليست هناك حاجة لاستخدام أدوات OEM. هذا يعني أن الاتصال بين التطبيق والنظام الأساسي سيكون أقل توسطًا. “Flutter هو أول SDK للجوال يتيح طرق عرض تفاعلية دون الحاجة إلى جسر JavaScript ،” كما تصفه الشركة. كل هذا يضيف إلى أوقات بدء التطبيق الأسرع ومخاوف أقل بشأن الأداء.


التعامل مع OrientationBuilder في فلاتر

كما شرحنا كلم في الاعلى الفكرة . عليك ان تضع التصميم يبدء ب OrientationBuilder لكي تتمكن من استخدامها ويستطيع تحديد ابعاد الشاشه الحاليه .


التعامل مع OrientationBuilder في فلاتر

OrientationBuilder.code


class CodeLess extends StatelessWidget {
  const CodeLess({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(),
        body: OrientationBuilder(
        builder: (context , orientation) {
          return orientation == Orientation.portrait ?
          ListView.builder(
          itemCount: 30,
          itemBuilder: (context , index) {
          return ListTile(
          leading: Icon(Icons.favorite_rounded),
          title: Text('Text $index'),
          );
          }
          )

          :

          GridView.builder(
          gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
          crossAxisCount: 3,
          // distance between h / w ,
          childAspectRatio: 6
          ),
          itemCount: 30,
          itemBuilder: (context , index) {
          return ListTile(
          leading: Icon(Icons.favorite_rounded),
          title: Text('Text $index'),
          );
          }
          );

        },
        )
    );
  }
}


فيديو الشرح



لمزيد من المقالات والدروس في فلاتر



شاهد أيضًا
مقالات ذات صلة
شرح كيفية التاكد من الاتصال بالانترنت وفي حالة عدم الاتصال اظهار صفحة عدم وجود انترنت flutter

 شرح كيفية التاكد من الاتصال بالانترنت وفي حالة عدم الاتصال اظهار صفحة عدم وجود انترنت…

عمل مؤشر لتتبع الخطوات في فلاتر | flutter stepper

  عمل مؤشر لتتبع الخطوات في فلاتر | flutter stepperيستخدم الflutter stepper بشكل كبير في…

كيفية عمل تكبير – zoom على الصور داخل الاندرويد ستوديو

  متابعي موقعنا الاعزاء مرحبا بكم في مقالة جديدة في برنامج android studio وفي درس…

🚫 مانع الإعلانات مفعل

يجب إيقاف مانع الإعلانات لاستكمال تصفح الموقع