مقدمة : 

يستعمل عنصر Text بشكل كبير جداً في فلاتر و يستعمل لعرض النصوص داخل التطبيق بطريقة سهلة وبسيطة , كما يمكن التحكم بخصائصه وتصميمه بشكل كامل عبر مجموعة من الخصائص .

 

كيف يتم تضمينه :

 يمكن تضمينه داخل أي مكان في الواجهة فهو عنصر Widget , وله عدة خصائص ( النص وخصائص إختيارية لها قيم افتراضية ) 


Center(
        child: Text(
      "سلسلة عناصر فلاتر",
      textAlign: TextAlign.right,
      overflow: TextOverflow.ellipsis,
      style: TextStyle(
          color: Colors.white,
          fontWeight: FontWeight.bold,
          backgroundColor: Colors.blue,
          decoration: TextDecoration.underline),
    ))

 

 

شرح الخصائص : 

textAlign : محاذاة النص , تأخذ قيمة TextAlign وهو من نوع enum (كمثال : TextAlign.center  ) وله قيم متعددة يمكنك الإطلاع عليها من هنا

overflow : ومعناه ( معالجة الفائض-الزائد من النص عن قياس العنصر الأب ) و تأخذ قيمة TextOverflow وهو من نوع enum (كمثال : TextOverflow.ellipsis ) وله قيم متعددة (clip: قطع ) (fade : اختفاء تدريجي للزيادة ) (ellipsis : نقاط ) (visible : ظاهر ) يمكنك الإطلاع عليها من هنا

style : تصميم النص ويستعمل كلاس TextStyle حيث يمكن من خلاله التحكم بشكل النص ولونه ونوع الخط والعديد من خصائصه .

textDirection : اتجاه النص , تأخذ قيمة TextDirection وهو من نوع enum وله خيارين فقط (TextDirection.ltr ويعني من اليسار لليمين و TextDirection.rtl ويعني من اليمين لليسار ) 

maxLines : عدد السطور الأعظمي ويأخذ قيمة عدد طبيعي int .


خصائص تصميم النص TextStyle : 

يمكنك التحكم بكل ما يتعلق بالنص عبر خصائص متعددة سنتناول أبرزها : 

color : تأخذ قيمة Color وهو لون النص .

backgroundColor : تأخذ قيمة Color وهو لون خلفية النص .

fontSize : تأخذ قيمة double وهو قياس النص .

decoration : تأخذ قيمة كلاس TextDecoration من نوع enum كمثال (TextDecoration.underline) و يمكن من خلالها إضافة خط تحت النص أو في وسطه أو لكل سطر يمكنك الإطلاع على خصائصه من هنا .

fontFamily : اسم الخط وتأخذ قيمة String , يتم تعيين اسماء الخطوط داخل ملف pubspec.yaml .

fontWeight : وزن الخط ( سميك أو خفيف أو طبيعي )  كمثال (FontWeight.bold) ويأخذ قيمة كلاس FontWeight ويمكنك التحكم بوزنه عبر كثير من الخيارات .

letterSpacing : التباعد بين الاحرف ويأخذ قيمة double .

wordSpacing : التباعد بين الكلمات ويأخذ قيمة double .




لكن ماذا لو أدرت استعمال ستايل لكل كلمة او مقطع في النص ؟ هنا يأتي استعمال عنصر RichText : 

يستعمل هذا العنصر لدمج عدة نصوص متعددة الاشكال ( الستايلات ) في عنصر واحد بدون الحاجة لاستعمال عناصر حاوية أخرى , سيكون هو الاب والنصوص متعددة الستايلات هم أبناؤه .

كيف يتم تضمينه :


Center(
        child: RichText(
      text: TextSpan(
        text: 'سلسلة ',
        style: DefaultTextStyle.of(context).style,
        children: const [
          TextSpan(text: 'عناصر', style: TextStyle(fontWeight: FontWeight.bold)),
          TextSpan(text: ' فلاتر !'),
        ],
      ),
    ))

 


المراجع : 

Text widgets | Flutter
TextStyle class - painting library - Dart API (flutter.dev)