आंशिक कस्टम टैब से एक साथ कई काम करना

डिफ़ॉल्ट रूप से, कस्टम टैब एक फ़ुल-विंडो गतिविधि के तौर पर लॉन्च होते हैं. Chrome 107 और इसकी शुरुआत से, पोर्ट्रेट मोड में लॉन्च की एक अलग ऊंचाई तय करने के लिए, कुछ हद तक कस्टम टैब का इस्तेमाल किया जा सकता है. ऐसा इसलिए किया जा सकता है, ताकि उपयोगकर्ता वेब कॉन्टेंट देखते समय आपके ऐप्लिकेशन से इंटरैक्ट करके, एक साथ कई काम कर सकें. उपयोगकर्ता, टूलबार के हैंडल को ऊपर की ओर खींचकर, कस्टम टैब को फ़ुल-स्क्रीन में बड़ा कर सकते हैं. साथ ही, हैंडल को नीचे की ओर खींचकर, टैब को लॉन्च करने के समय की ऊंचाई पर वापस लाया जा सकता है.

बॉटम शीट के 'पार्शियल टैब' का स्क्रीनशॉट
बॉटम शीट में मौजूद कुछ हद तक कस्टम टैब.

बड़ी स्क्रीन या लैंडस्केप मोड में काम करने वाले डिवाइसों के लिए, Chrome 120 से शुरू होने वाले वर्शन में, साइडशीट में कस्टम टैब का कुछ हिस्सा दिखाने के लिए, लॉन्च की ज़्यादा से ज़्यादा चौड़ाई तय की जा सकती है. ब्रेक पॉइंट सेट करके, यह तय किया जा सकता है कि किसी साइड या बॉटम शीट में, कस्टम टैब का कौनसा हिस्सा दिखाना है.

साइड शीट के पार्शियल टैब का स्क्रीनशॉट
साइड शीट में मौजूद कुछ हद तक कस्टम टैब की सुविधा.

पूर्वापेक्षा

कुछ हिस्से के कस्टम टैब का इस्तेमाल करने के लिए, आपको ये काम करने होंगे:

अगर अभी तक सेवा कनेक्शन नहीं हुआ है, तो तेज़ी से स्टार्टअप करने के लिए, दोनों तरीकों को जोड़ें.

बॉटम शीट कॉन्फ़िगर करना

किसी कस्टम टैब को आंशिक कस्टम टैब में बदलने के लिए, CustomTabBuilder क्लास के setInitialActivityHeightPx() तरीके को कॉल करके, लॉन्च की शुरुआती ऊंचाई को पिक्सल में तय करें. डिफ़ॉल्ट रूप से, कस्टम टैब के कुछ हिस्से का साइज़ बदला जा सकता है. हालांकि, इस व्यवहार को बंद करने के लिए ACTIVITY\_HEIGHT\_FIXED को पास किया जा सकता है:

new CustomTabsBuilder().setInitialActivityHeightPx(
    400,
    ACTIVITY_HEIGHT_FIXED
);

साइड शीट कॉन्फ़िगर करना

साइड शीट के व्यवहार को कॉन्फ़िगर करने के लिए, CustomTabBuilder क्लास के setInitialActivityWidthPx() तरीके को कॉल करके, लॉन्च की शुरुआती चौड़ाई को पिक्सल में तय करें.

डिफ़ॉल्ट रूप से, कस्टम टैब का कुछ हिस्सा छोटा या बड़ा किया जा सकता है. हालांकि, इस सुविधा को बंद करने के लिए, ACTIVITY\_HEIGHT\_FIXED को पास किया जा सकता है:

  CustomTabsIntent.Builder intentBuilder = new CustomTabsIntent.Builder(session)
        .setInitialActivityHeightPx(400)
        .setInitialActivityWidthPx(400);
        .setActivitySideSheetBreakpointDp(800);

अगर स्क्रीन की चौड़ाई setActivitySideSheetBreakpointDp() की ओर से सेट किए गए ब्रेकपॉइंट वैल्यू से ज़्यादा होती है, तो कस्टम टैब एक साइड शीट की तरह काम करेगा. अगर स्क्रीन की चौड़ाई x से ज़्यादा है, तो कस्टम टैब साइड शीट की तरह काम करेगा, नहीं तो वह बॉटम शीट की तरह काम करेगा. अगर कोई ब्रेकपॉइंट तय नहीं किया गया है, तो ब्राउज़र लागू करने की सुविधा को डिफ़ॉल्ट वैल्यू 840dp के तौर पर सेट किया जाना चाहिए. अगर x को <600dp पर सेट किया गया है, तो ब्राउज़र पर यह डिफ़ॉल्ट रूप से 600dp पर लागू होगा.

किसी मौजूदा सेशन में कुछ हद तक कस्टम टैब लॉन्च करना

CustomTabsSession customTabsSession;

// ...

CustomTabsIntent customTabsIntent = new CustomTabsIntent.Builder(customTabsSession)
   .setInitialActivityHeightPx(500)
    .setInitialActivityWidthPx(400);
    .setActivitySideSheetBreakpointDp(800);
   .setCloseButtonPosition(CustomTabsIntent.CLOSE_BUTTON_POSITION_END)
   // ...
   .build();

customTabsIntent.launchUrl(context, Uri.parse(url))

startActivityForResult का इस्तेमाल करके, कस्टम टैब का कुछ हिस्सा लॉन्च करना

private ActivityResultLauncher<String> mCustomTabLauncher = registerForActivityResult(new ActivityResultContract<String, Integer>() {
    @Override
    public Integer parseResult(int statusCode, @Nullable Intent intent) {
        return statusCode;
    }

    @NonNull
    @Override
    public Intent createIntent(@NonNull Context context, String url) {
        CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder(customTabsSession)
                .setInitialActivityHeightPx(500)
                .setInitialActivityWidthPx(400);
                .setActivitySideSheetBreakpointDp(800);
                .setCloseButtonPosition(CustomTabsIntent.CLOSE_BUTTON_POSITION_END)
                .setToolbarCornerRadiusDp(10);
        Intent customTabsIntent = builder.build().intent;
        customTabsIntent.setData(Uri.parse(url));
        return customTabsIntent;
    }
}, new ActivityResultCallback<Integer>() {
    @Override
    public void onActivityResult(Integer statusCode) {
       // ...
    }
});

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
    Button selectButton = findViewById(R.id.select_button);
    selectButton.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View view) {
            mCustomTabLauncher.launch(customTabsIntent.intent);
        }
    });
}

अगला लेख: अपने कस्टम टैब में उपयोगकर्ता ऐक्टिविटी को मेज़र करने का तरीका जानें.