আমার প্রশ্ন পৃথক্ সুস্পষ্ট উত্তরাধিকার পার্থক্য থেকে, মধ্যে মূল পার্থক্য কি কি Fragment
এবং FragmentActivity
? প্রতিটি শ্রেণীর কোন পরিস্থিতিতে সবচেয়ে উপযুক্ত? এই ক্লাস দুটি কেন বিদ্যমান তা বোঝার চেষ্টা করছি ...
আমার প্রশ্ন পৃথক্ সুস্পষ্ট উত্তরাধিকার পার্থক্য থেকে, মধ্যে মূল পার্থক্য কি কি Fragment
এবং FragmentActivity
? প্রতিটি শ্রেণীর কোন পরিস্থিতিতে সবচেয়ে উপযুক্ত? এই ক্লাস দুটি কেন বিদ্যমান তা বোঝার চেষ্টা করছি ...
উত্তর:
এ Fragment
একটি এর একটি বিভাগ Activity
যা রয়েছে:
Activity
চলমান অবস্থায় যোগ বা সরিয়ে ফেলা যায় ।একটি Fragment
অবশ্যই সর্বদা এম্বেড থাকা উচিত Activity
।
Fragments
হানিকম্বের পূর্বে API এর অংশ নয় (3.0) 3.0 আপনি যদি Fragments
হানিকম্বের আগে প্ল্যাটফর্ম সংস্করণকে লক্ষ্য করে একটি অ্যাপ্লিকেশন ব্যবহার করতে চান তবে আপনাকে আপনার প্রকল্পে সমর্থন প্যাকেজ যুক্ত করতে হবে এবং এটি FragmentActivity
ধরে রাখতে ব্যবহার করতে হবে Fragments
। FragmentActivity
বর্গ মোকাবেলার জন্য একটি API হয়েছে Fragments
, যেহেতু Activity
বর্গ, Honeycomb আগে, না।
যদি আপনার প্রকল্পটি কেবল হানিকম্বকে বা আরও নতুনকে লক্ষ্য করে চলেছে তবে আপনার ব্যবহার করা উচিত Activity
এবং FragmentActivity
এটি রাখা উচিত নয় Fragments
।
কিছু বিশদ:
ব্যবহার করুন android.app.Fragment
সঙ্গে Activity
। ব্যবহার করুন android.support.v4.app.Fragment
সঙ্গে FragmentActivity
। Fragment
একটি সমর্থন প্যাকেজ যোগ করবেন নাActivity
যেমন কারণ হবে একটি ব্যতিক্রম নিক্ষেপ করা হবে।
সাবধান হওয়ার মতো একটি জিনিস: FragmentManager
এবং LoaderManager
ফ্র্যাগমেন্টএটিভিটির জন্য পৃথক সমর্থন সংস্করণ রয়েছে:
আপনি যদি Fragment
কোনও Activity
(হানিকম্ব এবং তার উপরে) ব্যবহার করে থাকেন তবে কল করুন
getFragmentManager()
পেতে android.app.FragmentManager
getLoaderManager()
পেতে android.app.LoaderManager
আপনি যদি Fragment
কোনও FragmentActivity
(প্রাক-হানিকম্ব) ব্যবহার করে থাকেন তবে কল করুন:
getSupportFragmentManager()
পেতে android.support.v4.app.FragmentManager
।getSupportLoaderManager()
পেতে android.support.v4.app.LoaderManager
তাই হয়, না কি
//don't do this
myFragmentActivity.getLoaderManager();
//instead do this:
myFragmentActivity.getSupportLoaderManager();
অথবা
//don't do this:
android.app.FragmentManager fm = myFragmentActivity.getSupportFragmentManager();
//instead do this:
android.support.v4.app.FragmentManager fm = myFragmentActivity.getSupportFragmentManager()
এটি জানার জন্যও দরকারী যে কোনও খণ্ডটি এমবেড থাকা অবস্থায় Activity
এটি Activity
বিন্যাসের অংশ হতে হবে না । এটি ক্রিয়াকলাপের জন্য একটি অদৃশ্য কর্মী হিসাবে ব্যবহার করা যেতে পারে যার নিজস্ব কোনও ইউআই নেই।
ফ্র্যাগমেন্টএটিভিটি হ'ল টুকরো টুকরো সমর্থন সহ আমাদের ক্লাসিক ক্রিয়াকলাপ more অতএব ফ্রেগমেন্টএটিভিটি দরকার, যখন কোনও খণ্ড ক্রিয়াকলাপের সাথে সংযুক্ত থাকে।
ওয়েল ফ্র্যাগমেন্ট হ'ল ভাল উপাদান যা ক্রিয়াকলাপের মৌলিক আচরণগুলি অনুলিপি করে, তবুও ক্রিয়াকলাপের মতো স্থায়ী একক অ্যাপ্লিকেশন উপাদান নয় এবং কাজ করার জন্য ক্রিয়াকলাপের সাথে সংযুক্ত থাকা প্রয়োজন।
দেখুন এখানে আরো বিস্তারিত জানার জন্য
ফ্র্যাগমেন্টএকটিভিটিকে একটি নিয়মিত ক্রিয়াকলাপ হিসাবে ভাবেন যা খণ্ডগুলিকে সমর্থন করতে পারে। মধুচক্রের পূর্বে একটি ক্রিয়াকলাপ শ্রেণি সরাসরি টুকরোগুলিকে সমর্থন করতে পারে না, তাই খণ্ডগুলি ব্যবহার করে এমন ক্রিয়াকলাপগুলিতে এটি প্রয়োজন।
যদি আপনার টার্গেট বিতরণ হানিকম্ব হয় এবং এর বাইরে আপনি এর পরিবর্তে ক্রিয়াকলাপ বন্ধ করতে পারেন।
এছাড়াও একটি খণ্ডকে 'সাব-অ্যাক্টিভিটি' হিসাবে বিবেচনা করা উচিত। এটি কোনও ক্রিয়াকলাপ ছাড়া থাকতে পারে না। সর্বদা একটি খণ্ডকে উপ-ক্রিয়াকলাপ হিসাবে ভাবেন এবং আপনার ভাল হওয়া উচিত। সুতরাং ক্রিয়াকলাপটি হ'ল সন্তানের ধরণের প্রতীকী সম্পর্কের পিতা-মাতা এবং টুকরা (গুলি)।
একটি ফ্র্যাগমেন্টএটিভিটি হ'ল একটি অ্যাড-হক ক্রিয়াকলাপ যাতে ফ্রেগমেন্ট থাকে। এই কয়েকটি কথায় আমি আপনাকে একটি প্রধান গুরুত্বপূর্ণ পরিবর্তন ব্যাখ্যা করেছি যা অ্যান্ড্রয়েড 3.0.০ (হানিকম্ব) এর সাথে অ্যান্ড্রয়েড দল অ্যান্ড্রয়েড এসডিকে প্রবেশ করিয়েছে।
এই নতুন ধরণের ধারণার সাথে আপনার কোড এবং লেআউটের টুকরা আরও নমনীয় এবং রক্ষণাবেক্ষণযোগ্য হয়ে ওঠে। আপনি যদি গুগলে অনুসন্ধান করেন তবে প্রচুর উদাহরণ রয়েছে।