Android Kotlin Fundamentals 03.1: یک قطعه ایجاد کنید

این کد لبه بخشی از دوره آموزشی Android Kotlin Fundamentals است. اگر به ترتیب روی کدها کار کنید، بیشترین ارزش را از این دوره خواهید گرفت. همه کدهای دوره در صفحه فرود کد لبه های کدهای Android Kotlin Fundamentals فهرست شده اند.

در این کد لبه، شما در مورد قطعات یاد می گیرید، و یک قطعه در داخل یک برنامه شروع به نام AndroidTrivia ایجاد می کنید. در نرم افزار کد بعدی، درباره ناوبری بیشتر می آموزید و کارهای بیشتری را روی برنامه AndroidTrivia انجام می دهید.

آنچه از قبل باید بدانید

  • اصول کاتلین
  • نحوه ایجاد برنامه های اساسی اندروید در Kotlin
  • نحوه کار با طرح بندی

چیزی که یاد خواهید گرفت

  • چگونه یک Fragment را به صورت ایستا به برنامه خود اضافه کنید

کاری که خواهی کرد

  • یک قطعه در داخل یک اکتیویتی ایجاد کنید.

در سه کد لبه‌ای که این درس را تشکیل می‌دهند، شما روی برنامه‌ای به نام AndroidTrivia کار می‌کنید. برنامه تکمیل شده یک بازی است که در آن کاربر به سه سوال ساده در مورد کدنویسی اندروید پاسخ می دهد. اگر کاربر به هر سه سوال به درستی پاسخ دهد، برنده بازی است و می تواند نتایج خود را به اشتراک بگذارد.

برنامه AndroidTrivia الگوهای ناوبری و کنترل ها را نشان می دهد. برنامه دارای چندین مؤلفه است:

  • در صفحه عنوان، که در سمت چپ در تصویر بالا نشان داده شده است، کاربر بازی را شروع می کند.
  • در صفحه بازی با سوالات، که در وسط بالا نشان داده شده است، کاربر بازی را انجام می دهد و پاسخ های خود را ارسال می کند.
  • کشوی پیمایش، که در سمت راست بالا نشان داده شده است، از کنار برنامه به بیرون می‌چرخد و حاوی یک منو با هدر است. نماد کشو کشوی پیمایش را باز می کند. منوی کشو شامل پیوندی به صفحه درباره و پیوندی به قوانین بازی است.

در بالای برنامه نمای رنگی به نام نوار برنامه نمایش داده می شود که به نوار عمل نیز معروف است.

در این لبه کد، شما از یک برنامه شروع کار می کنید که کدهای قالب و کلاس های قطعه ای را که هنگام تکمیل برنامه Trivia به آنها نیاز دارید، ارائه می دهد.

  1. پروژه AndroidTrivia-Starter Android Studio را دانلود کنید.
  2. پروژه را در اندروید استودیو باز کنید و برنامه را اجرا کنید. وقتی برنامه باز می شود، کاری جز نمایش نام برنامه و یک صفحه خالی انجام نمی دهد.


  3. در قسمت Android Studio Project، نمای Project: Android را باز کنید تا فایل های پروژه را بررسی کنید. پوشه app > java را باز کنید تا کلاس MainActivity و کلاس های قطعه را ببینید.

  4. پوشه res > layout را باز کنید و روی activity_main.xml دوبار کلیک کنید. فایل activity_main.xml در Layout Editor ظاهر می شود.
  5. روی تب Design کلیک کنید. درخت مؤلفه برای فایل activity_main.xml طرح ریشه را به صورت LinearLayout عمودی نشان می دهد.



    در طرح‌بندی خطی عمودی، همه نماهای فرزند در طرح‌بندی به صورت عمودی تراز می‌شوند.

یک قطعه نشان دهنده یک رفتار یا بخشی از رابط کاربری (UI) در یک فعالیت است. می‌توانید چندین فرگمنت را در یک اکتیویتی ترکیب کنید تا یک رابط کاربری چند صفحه‌ای بسازید، و می‌توانید از یک قطعه در چندین فعالیت استفاده مجدد کنید.

یک قطعه را به عنوان یک بخش مدولار از یک فعالیت در نظر بگیرید، چیزی مانند یک "فعالیت فرعی" که می توانید در فعالیت های دیگر نیز استفاده کنید:

  • یک قطعه چرخه حیات خود را دارد و رویدادهای ورودی خود را دریافت می کند.
  • در حین اجرای فعالیت می توانید قطعه ای را اضافه یا حذف کنید.
  • یک قطعه در یک کلاس Kotlin تعریف شده است.
  • رابط کاربری یک قطعه در یک فایل طرح بندی XML تعریف شده است.

برنامه AndroidTrivia دارای یک فعالیت اصلی و چندین قطعه است. اکثر فرگمنت ها و فایل های چیدمان آن ها برای شما تعریف شده است. در این کار شما یک قطعه ایجاد می کنید و قطعه را به فعالیت اصلی برنامه اضافه می کنید.

مرحله 1: یک کلاس قطعه اضافه کنید

در این مرحله یک کلاس TitleFragment خالی ایجاد می کنید. با ایجاد یک کلاس Kotlin برای یک قطعه جدید شروع کنید:

  1. در اندروید استودیو، روی هر نقطه از پنجره Project کلیک کنید تا تمرکز به فایل‌های پروژه برگردد. برای مثال، روی پوشه com.example.android.navigation کلیک کنید.
  2. File > New > Fragment > Fragment (Blank) را انتخاب کنید.
  3. برای نام قطعه، از TitleFragment استفاده کنید. تمام چک باکس‌ها، از جمله ایجاد Layout XML ، شامل روش‌های کارخانه قطعه ، و شامل تماس‌های واسط را پاک کنید.
  4. روی Finish کلیک کنید.
  5. فایل قطعه TitleFragment.kt را باز کنید، اگر از قبل باز نشده باشد. این شامل onCreateView() است که یکی از متدهایی است که در طول چرخه حیات یک قطعه فراخوانی می شود.
  6. در onCreateView() بخش return TextView(activity).apply را حذف کنید، از جمله خطی که با setText شروع می شود. تابع onCreateView() فقط با کد زیر باقی می ماند:
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
                         savedInstanceState: Bundle?): View? {
}

یک شیء اتصال ایجاد کنید

قطعه در حال حاضر کامپایل نمی شود. برای کامپایل کردن قطعه، باید یک شیء binding ایجاد کنید و نمای قطعه را افزایش دهید (که معادل استفاده از setContentView() برای یک فعالیت است.

  1. در onCreateView() در TitleFragment.kt ، یک متغیر binding ( val binding ) ایجاد کنید.
  2. برای افزایش نمای قطعه، متد DataBindingUtil.inflate() را روی شی Binding قطعه که FragmentTitleBinding است فراخوانی کنید.

    چهار پارامتر را به متد ارسال کنید:
  • inflater ، که LayoutInflater مورد استفاده برای باد کردن طرح بندی صحافی است.
  • منبع طرح XML از طرح برای باد کردن. از یکی از طرح‌بندی‌هایی که قبلاً برای شما تعریف شده است، R.layout.fragment_title استفاده کنید.
  • container برای ViewGroup والد. (این پارامتر اختیاری است.)
  • false برای مقدار attachToParent .
  1. اتصالی را که DataBindingUtil.inflate برمی گرداند به متغیر binding اختصاص دهید.
  2. binding.root را از متد برگردانید که حاوی نمای باد شده است. onCreateView() شما اکنون شبیه کد زیر است:
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
                         savedInstanceState: Bundle?): View? {
   val binding = DataBindingUtil.inflate<FragmentTitleBinding>(inflater,
           R.layout.fragment_title,container,false)
   return binding.root
   }

مرحله 2: قطعه جدید را به فایل طرح بندی اصلی اضافه کنید

در این مرحله، TitleFragment را به فایل طرح بندی برنامه activity_main.xml اضافه می کنید.

  1. Res > layout > activity_main.xml را باز کنید و روی تب Text کلیک کنید تا کد XML طرح بندی را مشاهده کنید.
  2. در عنصر LinearLayout موجود، یک عنصر fragment اضافه کنید.
  3. شناسه قطعه را روی titleFragment کنید.
  4. نام قطعه را روی مسیر کامل کلاس قطعه قرار دهید که در این مورد com.example.android.navigation.TitleFragment است.
  5. عرض و ارتفاع طرح را روی match_parent تنظیم کنید.
<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">
            <fragment
                android:id="@+id/titleFragment"
                android:name="com.example.android.navigation.TitleFragment"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                />
        </LinearLayout>

</layout>
  1. برنامه را اجرا کنید. قطعه به صفحه اصلی شما اضافه شده است.

پروژه اندروید استودیو: AndroidTriviaFragment

در این کد لبه، شما یک قطعه به برنامه AndroidTrivia اضافه کردید که در دو کد بعدی این درس به کار روی آن ادامه خواهید داد.

  • قطعه یک بخش مدولار از یک فعالیت است.
  • یک قطعه چرخه حیات خود را دارد و رویدادهای ورودی خود را دریافت می کند.
  • از تگ <fragment> برای تعریف طرح بندی قطعه در فایل طرح بندی XML استفاده کنید.
  • طرح بندی یک قطعه در onCreateView() را باد کنید.
  • در حین اجرای فعالیت می توانید قطعه ای را اضافه یا حذف کنید.

دوره بی ادبی:

مستندات توسعه دهنده اندروید:

این بخش، تکالیف احتمالی را برای دانش‌آموزانی که در این آزمایشگاه کد به عنوان بخشی از دوره‌ای که توسط یک مربی هدایت می‌شود، فهرست می‌کند. این وظیفه مربی است که موارد زیر را انجام دهد:

  • در صورت نیاز تکالیف را تعیین کنید.
  • نحوه ارسال تکالیف را با دانش آموزان در میان بگذارید.
  • تکالیف را نمره دهید.

مربیان می‌توانند از این پیشنهادات به اندازه‌ای که می‌خواهند استفاده کنند، و باید با خیال راحت هر تکلیف دیگری را که فکر می‌کنند مناسب است به آنها اختصاص دهند.

اگر به تنهایی بر روی این کدها کار می کنید، از این تکالیف برای آزمایش دانش خود استفاده کنید.

یه این سوالات پاسخ دهید

سوال 1

برخی از تفاوت های بین قطعات و فعالیت ها چیست؟ تمام عبارات درست را انتخاب کنید.

  • هنگام ایجاد یک قطعه، طرح بندی را در onCreateView() افزایش می دهید. هنگام ایجاد یک اکتیویتی، طرح بندی را در onCreate() افزایش می دهید.
  • یک اکتیویتی طرح‌بندی خاص خود را دارد، اما یک قطعه نمی‌تواند طرح‌بندی خاص خود را داشته باشد.
  • یک فعالیت چرخه حیات خود را دارد، اما یک قطعه اینطور نیست.
  • هنگامی که طرح بندی را برای یک قطعه یا یک فعالیت افزایش می دهید، می توانید طرح بندی را به عنوان R.layout. layoutname .

سوال 2

کدام یک از عبارات زیر در مورد قطعات صحیح است؟ همه موارد کاربردی را انتخاب کنید.

  • می توانید از یک قطعه در بیش از یک فعالیت استفاده کنید.
  • یک فعالیت می تواند چندین قطعه داشته باشد.
  • پس از تعریف یک قطعه در کلاس Kotlin، قطعه به طور خودکار به فایل طرح بندی activity_main.xml اضافه می شود.
  • از تگ <fragment> برای تعریف مکانی در فایل طرح بندی که قرار است قطعه ای در آن درج شود استفاده کنید.

درس بعدی را شروع کنید: 3.2 مسیرهای ناوبری را تعریف کنید

برای پیوند به دیگر کدهای این دوره، به صفحه فرود کد لبه‌های کد پایه Android Kotlin Fundamentals مراجعه کنید.