📝 ما هي Text Widget
في Flutter؟
ويدجت Text
تُستخدم لعرض نص على الشاشة.
Text('مرحباً بك في Flutter')
Dart✅ الشكل الأساسي:
Text(
'مرحباً',
)
Dartتُعرض كلمة “مرحباً” في النص الافتراضي (لون أسود، حجم صغير، بدون تنسيق).
📌 الخصائص المهمة التي تُستخدم مع Text
:
1. style
تُستخدم لتنسيق الخط (اللون، الحجم، الوزن، نوع الخط…).
Text(
'مرحبا بك',
style: TextStyle(
color: Colors.blue,
fontSize: 24,
fontWeight: FontWeight.bold,
fontStyle: FontStyle.italic,
letterSpacing: 2,
wordSpacing: 10,
),
)
Dartشرح الخيارات داخل TextStyle
:
الخاصية | الشرح |
---|---|
color | لون الخط |
fontSize | حجم الخط |
fontWeight | وزن الخط (سميك، خفيف..) مثل: FontWeight.bold |
fontStyle | مائل أو عادي: FontStyle.italic |
letterSpacing | المسافة بين الحروف |
wordSpacing | المسافة بين الكلمات |
fontFamily | اسم الخط |
2. textAlign
محاذاة النص داخل المساحة المتوفرة له:
Text(
'هذا نص طويل جداً جداً',
textAlign: TextAlign.center,
)
Dartالقيمة | المحاذاة |
---|---|
TextAlign.left | لليسار |
TextAlign.right | لليمين |
TextAlign.center | في المنتصف |
TextAlign.justify | ضبط النص (كما في الصحف) |
3. maxLines
تحدد عدد السطور المسموح بها للنص:
Text(
'هذا نص طويل جداً جداً وسيتم قطعه إذا تجاوز السطر المحدد',
maxLines: 1,
)
Dart4. overflow
تُستخدم لتحديد ماذا يحدث لو تجاوز النص عدد السطور:
Text(
'نص طويل جداً',
maxLines: 1,
overflow: TextOverflow.ellipsis, // ...
)
Dartالقيمة | التأثير |
---|---|
TextOverflow.clip | يقطع النص بدون أي رمز |
TextOverflow.fade | يخفيه تدريجياً |
TextOverflow.ellipsis | يضيف (…) |
5. textDirection
تحدد اتجاه الكتابة:
Text(
'مرحبا',
textDirection: TextDirection.rtl,
)
Dartالقيمة | الشرح |
---|---|
TextDirection.ltr | من اليسار لليمين |
TextDirection.rtl | من اليمين لليسار |
6. softWrap
هل يتم التفاف النص تلقائياً إذا تجاوز العرض؟
Text(
'نص طويل جداً قد لا يظهر كله في الشاشة',
softWrap: true,
)
Dart7. textScaleFactor
لتكبير أو تصغير حجم الخط كنسبة من الحجم الأصلي:
Text(
'مرحبا',
textScaleFactor: 1.5, // تكبير بمقدار 1.5 مرة
)
Dart💡 مثال متكامل:
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(title: Text('مثال على Text Widget')),
body: Center(
child: Text(
'أهلاً بك في Flutter',
style: TextStyle(
fontSize: 24,
fontWeight: FontWeight.bold,
color: Colors.deepPurple,
fontStyle: FontStyle.italic,
letterSpacing: 2,
),
textAlign: TextAlign.center,
textDirection: TextDirection.rtl,
maxLines: 2,
overflow: TextOverflow.ellipsis,
),
),
),
);
}
}
Dartstyle: TextStyle(
color: Colors.blue,
),
Dartالـ TextStyle
تسمى كائن (Object) من الكلاس TextStyle.
التفسير الكامل:
TextStyle
هو كلاس (Class) في Flutter.- عندما تكتبه بهذه الطريقة
TextStyle(...)
، فأنت تقوم بإنشاء كائن (Instance) جديد من هذا الكلاس. - هذا الكائن يتم تمريره إلى خاصية
style
في ويدجتText
.
المصطلحات الدقيقة:
TextStyle
→ اسم الكلاسTextStyle(...)
→ إنشاء كائن (Object Instantiation) من الكلاسstyle: TextStyle(...)
→ تمرير كائن من النوعTextStyle
إلى الخاصيةstyle
مثال كامل:
Text(
'مرحبا بك',
style: TextStyle(
color: Colors.blue, // لون النص
fontSize: 24, // حجم الخط
fontWeight: FontWeight.bold, // وزن الخط (سماكة)
fontStyle: FontStyle.italic, // نمط الخط (مائل)
letterSpacing: 2.0, // تباعد الحروف
wordSpacing: 5.0, // تباعد الكلمات
decoration: TextDecoration.underline, // خط تحت النص
decorationColor: Colors.red, // لون الزخرفة (كالخط تحت النص)
decorationStyle: TextDecorationStyle.dashed, // نمط الزخرفة
),
)
Dart