شارك المقالة

التعامل مع وضعيات الشاشة افقي وعمودي باستخدام 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 باكثر من طريقة في هذا المقال…

ترجمه التطبيق الخاص بك بشكل كامل لاكثر من لغة باستخدام google translate في تطبيقات Flutter

ترجمه التطبيق الخاص بك بشكل كامل لاكثر من لغة باستخدام google translate في تطبيقات Flutterوضع…

كود بلغة بايثون لطباعة محيط ومساحة المستطيل – Calculate the area and perimeter of a rectangle in Python

كود لطباعة مساحة المستطيل و محيطه بلغة البايثونتعتبر لغه البايثون واحد من اهم اللغات التي…

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

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