أساسيات Material Design
استخدموا مكوّنات Material: MaterialButton وTextInputLayout وMaterialCardView وFloatingActionButton وSnackbar وChip وBottomSheetDialog وDynamic Color.
أساسيات Material Design درس مجاني في Android Academy على CoddyKit. هذا هو الدرس 1 من أصل 5. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Android Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Android Academy 5 دروس في المجموع.
ما هو Material Design؟
Material Design هو نظام التصميم من Google لبناء تطبيقات Android جميلة ومتسقة. ويوفر ما يلي:
- مجموعة غنية من مكونات واجهة المستخدم الجاهزة
- قواعد متسقة للمسافات والطباعة والألوان
- مكونات يمكن الوصول إليها ومتجاوبة
- رسوم متحركة وانتقالات مدمجة
توفّر مكتبة Material Components for Android (MDC) نظام Material 3 ضمن Jetpack.
إضافة مكونات Material
أضف الاعتمادية واضبط سمة تطبيقك على سمة Material:
// app/build.gradle:
dependencies {
implementation 'com.google.android.material:material:1.12.0'
}
// res/values/themes.xml:
<style name="Theme.MyApp" parent="Theme.Material3.DayNight.NoActionBar">
<item name="colorPrimary">@color/primary</item>
<item name="colorSecondary">@color/secondary</item>
<!-- ... -->
</style>MaterialButton
استبدل Button العادي بـ MaterialButton للحصول على زوايا مستديرة وتأثيرات التموج ودعم الأيقونات:
<!-- Filled (default) -->
<com.google.android.material.button.MaterialButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Save"
app:icon="@drawable/ic_save" />
<!-- Outlined style -->
<com.google.android.material.button.MaterialButton
style="@style/Widget.Material3.Button.OutlinedButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Cancel" />
<!-- Text button -->
<com.google.android.material.button.MaterialButton
style="@style/Widget.Material3.Button.TextButton"
android:text="Learn more" />TextInputLayout وTextInputEditText
يغلّف TextInputLayout عنصر EditText لتوفير تسميات عائمة ورسائل خطأ وعدادات للأحرف:
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/tilEmail"
style="@style/Widget.Material3.TextInputLayout.OutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Email address"
app:helperText="We will never share your email">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textEmailAddress" />
</com.google.android.material.textfield.TextInputLayout>MaterialCardView
يضيف MaterialCardView الارتفاع والزوايا المستديرة والحدود إلى حاوية:
<com.google.android.material.card.MaterialCardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp"
app:cardCornerRadius="12dp"
app:cardElevation="4dp"
app:strokeColor="@color/outline"
app:strokeWidth="1dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp"
android:orientation="vertical">
<TextView android:text="Card Title" />
<TextView android:text="Card content goes here" />
</LinearLayout>
</com.google.android.material.card.MaterialCardView>FloatingActionButton (FAB)
تُبرز أزرار FAB الإجراء الأساسي على الشاشة. يوفر Material 3 ثلاثة أحجام:
<!-- Standard FAB -->
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_margin="16dp"
android:contentDescription="Add item"
app:srcCompat="@drawable/ic_add" />
<!-- Extended FAB (icon + text) -->
<com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton
android:text="New Note"
app:icon="@drawable/ic_edit"
android:layout_gravity="bottom|end" />MaterialToolbar
استبدل ActionBar الافتراضي بـ MaterialToolbar للحصول على نمط Material 3:
<!-- In layout XML -->
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorSurface"
app:title="My App"
app:navigationIcon="@drawable/ic_menu" />
// In Activity:
setSupportActionBar(binding.toolbar)
binding.toolbar.setNavigationOnClickListener {
onBackPressedDispatcher.onBackPressed()
}Snackbar
يعرض Snackbar رسائل موجزة قابلة لاتخاذ إجراء في أسفل الشاشة. استخدمه بدلًا من Toast:
// Simple message:
Snackbar.make(binding.root, "Item deleted", Snackbar.LENGTH_SHORT).show()
// With action:
Snackbar.make(binding.root, "Item deleted", Snackbar.LENGTH_LONG)
.setAction("Undo") {
viewModel.undoDelete()
}
.setAnchorView(binding.fab) // appears above the FAB
.show()Chip وChipGroup
العناصر Chip هي عناصر مدمجة تُستخدم للفلاتر والوسوم والتحديدات:
<com.google.android.material.chip.ChipGroup
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:singleSelection="true">
<com.google.android.material.chip.Chip
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Kotlin"
style="@style/Widget.Material3.Chip.Filter" />
<com.google.android.material.chip.Chip
android:text="Android"
style="@style/Widget.Material3.Chip.Filter" />
<com.google.android.material.chip.Chip
android:text="Jetpack"
style="@style/Widget.Material3.Chip.Filter" />
</com.google.android.material.chip.ChipGroup>BottomSheetDialog
تنزلق Modal Bottom Sheet من أسفل الشاشة وتحتوي على محتوى أو إجراءات:
class OptionsBottomSheet : BottomSheetDialogFragment() {
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?
): View {
return inflater.inflate(R.layout.bottom_sheet_options, container, false)
}
}
// Show it from a Fragment:
val sheet = OptionsBottomSheet()
sheet.show(parentFragmentManager, "options")Material You — الألوان الديناميكية
يدعم Android 12 والإصدارات الأحدث الألوان الديناميكية — إذ يتكيف نظام ألوان التطبيق تلقائيًا مع خلفية شاشة المستخدم:
// In Application.onCreate():
override fun onCreate() {
super.onCreate()
DynamicColors.applyToActivitiesIfAvailable(this)
}
// That's it! Colors automatically extract from wallpaper on Android 12+
// On older Android, fallback colors from your theme are used.تحقق سريع
ما مكوّن Material الذي ينبغي استخدامه لتغليف EditText والحصول على تسميات عائمة ورسائل خطأ مضمنة؟
مراجعة: أساسيات Material Design
تجعل مكونات Material بناء التطبيقات الجميلة أمرًا سهلًا:
MaterialButton— أنماط ممتلئة ومحددة ونصيةTextInputLayout+TextInputEditText— تسميات عائمة وأخطاءMaterialCardView— بطاقات بارتفاع وحدودFloatingActionButton— زر الإجراء الأساسيSnackbar— رسائل قابلة للإغلاق مع إجراءاتChip— وسوم وفلاتر وتحديدات- الألوان الديناميكية — تتكيف مع خلفية الشاشة في Android 12 والإصدارات الأحدث
التالي: السمات والأنماط والوضع الداكن.
الأسئلة الشائعة
هل درس «أساسيات Material Design» مجاني؟
نعم — نص درس «أساسيات Material Design» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Android Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Android Academy 5 دروس في المجموع.
ماذا ستتعلم في «أساسيات Material Design»؟
استخدموا مكوّنات Material: MaterialButton وTextInputLayout وMaterialCardView وFloatingActionButton وSnackbar وChip وBottomSheetDialog وDynamic Color. تتمرن على Android Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Android Academy؟
لا تُشترط خبرة سابقة. Android Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 5.
كم من الوقت يستغرق درس «أساسيات Material Design»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Android Academy هذا؟
نعم. كل درس في Android Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- أساسيات Material Design
- Themes وStyles
- واجهات مخصّصة
- الرسوم المتحركة والانتقالات
- التنقّل السفلي وعلامات التبويب