سلام دوستان امیدوارم سلامت باشید در این سری از آموزش برنامه نویسی اندروید به آموزش فرگمنت در برنامه نویسی اندروید – کوتلین می پردازیم قبلا نحوه استفاده از فرگمنت (fragment) را برای شما قرار داده بودیم در این آموزش نحوه استفاده از فرگمنت را در زبان کوتلین بیان خواهیم کرد در ادامه با ما همراه باشید.
شما باید ابتدا کوتلین را به پروژه خود اضافه کنید که می توانید از آموزش های قبلی استفاده کنید
آموزش اضافه کردن kotlin به اندروید استودیو
ابتدا ما یک layout برای فرگمنتمون درست می کنیم که نام فایل را برابر با activity_fragment_demo.xml قرار میدهیم این layout باید در پوشه res/layout ایجاد شود.
activity_fragment_demo.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/red" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:text="Programchi.ir - Kotlin Fragment Example " android:textAppearance="?android:attr/textAppearanceLarge" /> </RelativeLayout> |
حالا باید مثل قبل که یک کلاس درست می کردیم و فرگمنت در آن handle میشد یک کلاس درست کنیم و فقط بخش Extend های آن کمی تغییر می کند. یک کلاس به نام FragmentOne از نوع کوتلین درست کنید و کدهای زیر را در آن قرار دهید.
FragmentOne.kt
1 2 3 4 5 6 7 8 9 10 11 12 13 | package ir.programchi import android.os.Bundle import android.support.v4.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup class FragmentOne : Fragment() { override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? { return inflater?.inflate(R.layout.activity_fragment_demo, container, false) } } |
حالا باید این فرگمنت رو در جایی نشون بدیم پس یک اکتیویتی از نوع کوتلین مثل زیر ایجاد می کنیم.
یک لایه به نام activity_fragment_example.xml ایجاد کنید و کدهای زیر را در آن قرار دهید.
activity_fragment_example.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".FragmentDemoActivity" > <fragment android:id="@+id/fragment_one" android:name="com.programchi.myfragmentdemo.FragmentOne" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_centerVertical="true" tools:layout="@layout/fragment_one_layout" /> </RelativeLayout> |
FragmentExampleActivity.kt
1 2 3 4 5 6 7 8 9 10 11 12 | package ir.programchi import android.support.v4.app.FragmentActivity import android.os.Bundle class FragmentExampleActivity : FragmentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_fragment_example) val firstFragment = FragmentOne() firstFragment.arguments = intent.extras val transaction = fragmentManager.beginTransaction() transaction.add(R.id.LinearLayout1, firstFragment) transaction.commit() } } |
موفق باشید.