سلام دوستان امیدوارم سلامت باشید در این سری از آموزش برنامه نویسی اندروید به آموزش فرگمنت در برنامه نویسی اندروید – کوتلین می پردازیم قبلا نحوه استفاده از فرگمنت (fragment) را برای شما قرار داده بودیم در این آموزش نحوه استفاده از فرگمنت را در زبان کوتلین بیان خواهیم کرد در ادامه با ما همراه باشید.
شما باید ابتدا کوتلین را به پروژه خود اضافه کنید که می توانید از آموزش های قبلی استفاده کنید
ابتدا ما یک layout برای فرگمنتمون درست می کنیم که نام فایل را برابر با activity_fragment_demo.xml قرار میدهیم این layout باید در پوشه res/layout ایجاد شود.
| <?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> |
در بالا یک Relative گرفتیم و در آن یک TextView قرار دادیم.
حالا باید مثل قبل که یک کلاس درست می کردیم و فرگمنت در آن handle میشد یک کلاس درست کنیم و فقط بخش Extend های آن کمی تغییر می کند. یک کلاس به نام FragmentOne از نوع کوتلین درست کنید و کدهای زیر را در آن قرار دهید.
| 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) } } |
تا اینجا ما یک فرگمنت خالی ساختیم که inflate می شود.
حالا باید این فرگمنت رو در جایی نشون بدیم پس یک اکتیویتی از نوع کوتلین مثل زیر ایجاد می کنیم.
یک لایه به نام activity_fragment_example.xml ایجاد کنید و کدهای زیر را در آن قرار دهید.
| <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> |
در بالا یک View از نوع Fragment قرار دادیم تا fragment را در آن لود یا قرار دهیم.
| 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() } } |
در بالا همان روال قدیم برای لود کردن فرگمنت استفاده شده است و فقط از نظر ظاهری و syntax کمی فرق می کند.
موفق باشید.
مطالعه بیشتر