Android में खुशबू बनाम कस्टम दृश्य




fragment android-custom-view (2)

फ्रैगमेंट और कस्टम व्यू समान फ़ंक्शन को प्राप्त कर सकते हैं, मुझे पता है कि फ़्रेग्मेंटेशन का उपयोग करने के लिए किसी अन्य लाभ / संवर्द्धन के साथ कस्टम व्यू, तुलना में टुकड़ा अधिक पुन: प्रयोज्य है? क्या सीमा शुल्क को कस्टम दृश्य या किसी विशिष्ट उद्देश्य के लिए सिर्फ एक संवर्द्धन माना जाता है?

उदाहरण के लिए, नीचे दिया गया कोड टुकड़ा है :

public class TestFragment extends Fragment {

    private TextView tv_name;
    private Button btn_play;
    private Button btn_delete;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        return inflater.inflate(R.layout.testfragment, container, false);
    }

    @Override
    public void onStart() {
        super.onStart();

        tv_name = (TextView)getView().findViewById(R.id.tv_name);
        btn_play = (Button)getView().findViewById(R.id.btn_play);
        btn_delete = (Button)getView().findViewById(R.id.btn_delete);

    }
}

कस्टम दृश्य के लिए कोड:

public class TestCustomView extends LinearLayout {

    private TextView tv_name;
    private Button btn_play;
    private Button btn_delete;

    public TestCustomView(Context context, AttributeSet attrs){
        super(context, attrs);

        setOrientation(LinearLayout.HORIZONTAL);
        setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));

        tv_name = new TextView(context);
        addView(tv_name);

        btn_play = new Button(context);
        addView(btn_play);

        btn_delete = new Button(context);
        addView(btn_delete);
    }

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        return inflater.inflate(R.layout.testfragment, container, false);
    }
}

TestFragment और TestCustomView दोनों TestFragment व्यू और Buttons मिलकर एक दृश्य बना सकते हैं, और गतिविधि की xml लेआउट फ़ाइल में घोषित करने के लिए Framelayout/fragment और com.packagename.TestCustomView टैग का उपयोग कर सकते हैं, लेकिन Fragment का उपयोग करने के क्या फायदे हैं?


कस्टम दृश्य में सादगी का लाभ है और उनका प्राथमिक उद्देश्य स्क्रीन पर डेटा का एक टुकड़ा प्रदर्शित करना है। उन्हें और अधिक करने के लिए अन्य घटकों पर निर्भर रहना चाहिए।

फ्रेगमेंट को एक कार्यात्मक इकाई के रूप में सोचें, यूआई के एक हिस्से को प्रदर्शित करने का एक तरीका जिसका एक विशिष्ट उद्देश्य है, एक या अधिक दृश्यों का उपयोग करना। टुकड़े गतिविधि जीवनचक्र से जुड़े होते हैं और वे लोडर्स को डेटा के साथ दर्शाने के लिए शामिल और नियंत्रित कर सकते हैं। वे उप-टुकड़े भी शामिल कर सकते हैं। अंत में, उन्हें एक सिंथेटिक बैक स्टैक में भी जोड़ा जा सकता है। वे कई काम कर सकते हैं और सीखने के लिए कुछ जटिल हैं।

जैसा कि आप देख सकते हैं, फ्रैगमेंट में गतिविधियों के साथ सामान्य रूप से बहुत अधिक है, जबकि उनके पास कस्टम विचार हैं।

साइड नोट के रूप में, फ़्रैगमेंट भी बिना हेड (बिना यूआई के) हो सकते हैं। सिर के टुकड़े अलग-अलग घटक में गतिविधि जीवनचक्र पर निर्भर गैर-दृश्य कार्यक्षमता को एनक्रिप्ट करने का एक तरीका प्रदान करते हैं।


टुकड़े अपने स्वयं के जीवनचक्र के साथ आते हैं, जो आपकी जरूरत के आधार पर एक बाधा या बोनस हो सकता है।

Fragments को onResume या onSavedInstanceState जैसे जीवनचक्र के तरीके मिलते हैं, जो आपके आवेदन में राज्य के संक्रमण से निपटने में आपकी मदद कर सकते हैं। यदि आप कस्टम दृश्यों का उपयोग कर रहे हैं, तो आपको उस तरह की चीज़ों को अपने दम पर संभालना होगा।

ऐसे लोग हैं जो अंशों का उपयोग करने की वकालत करते हैं, मैं सुझाव देता हूं कि https://corner.squareup.com/2014/10/advocating-against-android-fragments.html पढ़ें







android-custom-view