0Pricing
Android Academy · درس

أساسيات 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 يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. أساسيات Material Design
  2. Themes وStyles
  3. واجهات مخصّصة
  4. الرسوم المتحركة والانتقالات
  5. التنقّل السفلي وعلامات التبويب
← العودة إلى Android Academy