فيما يلي قائمة بالطرق او الدوال التي يمكنك استخدامها مع القطع فئة Fragment -
1. onAttach (): يرتبط مثيل الجزء بمثيل نشاط ، ويُطلق على هذه الطريقة اسم أولاً ، حتى قبل طريقة onCreate (). تتيح لنا هذه الطريقة معرفة أن القطعة Fragment الخاص بنا قد تم إرفاقه بنشاط ما.
يوجد أدناه مثال كود طريقة onAttach ().
@Override public void onAttach(Activity activity) { super.onAttach(activity); // add your code here which executes when fragment instance is associated }
2. onCreate (): سيتم استدعاء هذا عند إنشاء القطعة Fragment . هذا يعني أنه عند تهيئة مثيل جزء جديد ، والذي يحدث دائمًا بعد إرفاقه بالمضيف.
يوجد أدناه مثال كود طريقة onCreate ().
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // add your code here which executes when fragment's instance initializes }
3. onCreateView (): سيتم استدعاؤه عندما يحين وقت القطعة Fragment لرسم واجهة المستخدم الخاصة به (واجهة المستخدم) لأول مرة. لرسم واجهة مستخدم للجزء الخاص بنا ، يجب أن نعيد مكون العرض من هذه الطريقة التي تمثل جذر تخطيط الجزء الخاص بنا. يمكننا أيضًا إرجاع قيمة خالية إذا كان الجزء لا يوفر واجهة مستخدم.
فيما يلي كود المثال لطريقة onCreateView ().
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.fragment_test, container, false); // add your code here to draw the UI for the first time means in this method we can get the reference of the views which are created // in our xml file return v; }
4. onViewCreated (): سيتم استدعاء هذا بعد طريقة onCreateView (). هذه الطريقة مفيدة بشكل خاص عند وراثة تنفيذ طريقة onCreateView () ولكننا نحتاج إلى تكوين طرق العرض الناتجة مثل ListFragment ووقت إعداد محول .
فيما يلي كود المثال لطريقة onViewCreated ().
@Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); // add your code here which executes after the execution of onCreateView() method. }
5. onActivityCreated (): يُطلق على هذه الطريقة اسم طريقة onCreateView () عند إنشاء نشاط المضيف. تشير هذه الطريقة إلى أن النشاط onCreate () قد اكتمل.
فيما يلي كود مثال لطريقة onActivityCreated ().
@Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); // add your code here which executes when the host activity is created. }
6. onStart (): تسمى هذه الطريقة بمجرد ظهور الجزء.
فيما يلي رمز مثال لطريقة onStart ().
@Override public void onStart() { super.onStart(); // add your code here which executes when the Fragment gets visible. }
7. onResume (): تسمى هذه الطريقة عندما يكون القطعة Fragment مرئيًا ومستعصيًا على الحل.
فيما يلي رمز المثال لطريقة onResume ().
@Override public void onResume() { super.onResume(); // add your code here which executes when the Fragment is visible and intractable. }
8. onPause (): هذه الطريقة هي أول إشارة إلى أن المستخدم يترك القطعة Fragment الحالي أو القطعة Fragment الذي لم يعد قابلاً للتفاعل. يحدث ذلك عند معالجة أي جزء من عملية النقل أو إزالة جزء.
فيما يلي كود مثال لطريقة onPause ().
@Override public void onPause() { super.onPause(); // add your code here which executes when user leaving the current fragment or fragment is no longer intractable. }
9. onStop (): تسمى هذه الطريقة بعد طريقة onPause (). سيتم إيقاف المقطع عن طريق استدعاء onStop (). تستدعي هذه الطريقة عندما لا يكون القطعة Fragment مرئيًا. يحدث إما بعد أن يكون القطعة Fragment على وشك الإزالة أو بعد معالجة انتقال الجزء (استبدال الجزء) أو عند توقف نشاط المضيف.
فيما يلي كود مثال لطريقة onStop ().
@Override public void onStop() { super.onStop(); // add your code here which executes Fragment going to be stopped. }
10. onDestroyView (): يتم استدعاء هذه الطريقة عند إزالة العرض والموارد الأخرى ذات الصلة التي تم إنشاؤها في طريقة onCreateView () من التسلسل الهرمي لعرض النشاط وإتلافها.
فيما يلي كود المثال لطريقة onDestroyView ().
@Override public void onDestroyView() { super.onDestroyView(); // add your code here which executes when the view's and other related resources created in onCreateView() method are removed }
11. onDestroy (): يُطلق على هذه الطريقة إجراء التنظيف النهائي لحالة Fragment ولكن لا يمكن ضمان استدعاؤها بواسطة نظام Android الأساسي. تسمى هذه الطريقة بعد طريقة onDestroyView ().
فيما يلي كود مثال لطريقة onDestroy ().
@Override public void onDestroy() { super.onDestroy(); // add your code here which executes when the final clean up for the Fragment's state is needed. }
12. onDetach (): تسمى هذه الطريقة بعد طريقة onDestroy () للإعلام بأن القطعة Fragment قد تم فصله عن نشاط الاستضافة الخاص به مما يعني فصل الجزء عن نشاط المضيف الخاص به.
فيما يلي كود مثال لطريقة onDetach ().
@Override public void onDetach() { super.onDetach(); // add your code here which executes when fragment has been disassociated from its hosting activity }
مثال على دورة حياة القطع Fragment في Android Studio :
فيما يلي مثال على دورة حياة القطعة Fragment . في هذا المثال نعرض استخدام طرق رد نداء مختلفة القطعة Fragment . في هذا نقوم بإنشاء نشاط وتحديد القطعة Fragment في النشاط باستخدام علامة <fragment>. في الجزء الخاص بنا ، أي TestFragment ، نتجاوز جميع الطرق وفي كل طريقة نقوم بتعيين رسالة يتم عرضها في ملف السجل الخاص بنا.
يمكنك أدناه تنزيل الكود ، والاطلاع على الإخراج النهائي والشرح خطوة بخطوة للمثال:
الخطوة 1: قم بإنشاء مشروع جديد وقم بتسميته IncludeTagExample
الخطوة 2: افتح res -> layout -> activity_main. xml (أو) main. xml وأضف الكود التالي:
في هذه الخطوة ، نفتح ملف xml ثم ننشئ القطعة Fragment لعرض القطعة Fragment في نشاطنا.
<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" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity"> <!-- Take a fragment in our activity --> <fragment android:id="@+id/test_fragment" class="com.fragmentlifecycle.TestFragment" android:layout_width="match_parent" android:layout_height="match_parent" tools:layout="@layout/fragment_test" /> </RelativeLayout>
الخطوة 3: افتح src -> package -> MainActivity. جافا
في هذه الخطوة ، لا نضيف أي شيء لأننا قمنا بالفعل بإضافة جزء من ملف xml الخاص بنا.
package com.fragmentlifecycle; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } }
الخطوة 4: الآن نحتاج إلى ملف Fragment و xml layout (xml). لذلك قم بإنشاء جزء جديد بالنقر بزر الماوس الأيمن على مجلد الحزمة الخاص بك وإنشاء فئة وتسميتها TestFragment وإضافة الكود التالي فيها.
package com.fragmentlifecycle; import android.annotation.TargetApi; import android.app.Activity; import android.app.Fragment; import android.os.Build; import android.os.Bundle; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @TargetApi(Build.VERSION_CODES.KITKAT) public class TestFragment extends Fragment { private void printLog(String s) { // display a message in Log File Log.d("LifeCycle:", s); } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); printLog("onActivityCreated Called"); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.fragment_test, container, false); printLog("onCreateView Called"); return v; } @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); printLog("onViewCreated Called"); } @Override public void onAttach(Activity activity) { super.onAttach(activity); printLog("onAttach Called"); } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); printLog("onCreate Called"); } @Override public void onDestroy() { super.onDestroy(); printLog("onDestroy Called"); } @Override public void onDestroyView() { super.onDestroyView(); printLog("onDestroyView Called"); } @Override public void onDetach() { super.onDetach(); printLog("onDetach Called"); } @Override public void onPause() { super.onPause(); printLog("onPause Called"); } @Override public void onResume() { super.onResume(); printLog("onResume Called"); } @Override public void onStart() { super.onStart(); printLog("onStart Called"); } @Override public void onStop() { super.onStop(); printLog("onStop Called"); } }
الخطوة 5: الآن قم بإنشاء ملف تخطيط xml جديد عن طريق النقر بزر الماوس الأيمن على res / layout -> New -> Layout Resource File وقم بتسميته على أنه fragment_test وأضف الكود التالي فيه.
في هذه الخطوة ، نقوم بإنشاء TextView لعرض رسالة مثل "Please Check Logcat. !!!" على الشاشة.
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <!-- Create a TextView --> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:text="Please Check Logcat.!!!" android:textColor="#000" android:textSize="25sp" /> </LinearLayout>
المخرج :
تحقق من logcat في Android Studio وسترى طرق Fragment Lifecycle فيه .