سلام دوستان امیدوارم سلامت باشید در این سری از آموزش برنامه نویسی اندروید به آموزش فرگمنت در برنامه نویسی اندروید – کوتلین می پردازیم قبلا نحوه استفاده از فرگمنت (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 کمی فرق می کند.
موفق باشید.
مطالعه بیشتر