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

कस्टम टैब, डिफ़ॉल्ट रूप से फ़ुल-विंडो गतिविधि के तौर पर लॉन्च होते हैं. 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))

startActivityForresults के ज़रिए कुछ कस्टम टैब लॉन्च करें

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);
        }
    });
}

इसके बाद: अपने कस्टम टैब में, उपयोगकर्ता की दिलचस्पी को मापने का तरीका जानें.