כברירת מחדל, 'כרטיסיות מותאמות אישית' מופעלות כפעילות בחלון מלא. הפעלה ב-Chrome 107, ניתן להשתמש בחלק מהכרטיסיות המותאמות אישית כדי לציין גובה הפעלה שונה הדגשת דיוקן כך שמשתמשים יוכלו לבצע ריבוי משימות במקביל על ידי אינטראקציה עם האפליקציה וצפייה בתוכן אינטרנט. המשתמשים יכולים להרחיב את הכרטיסייה 'מותאם אישית' למסך מלא על ידי גרירה את נקודת האחיזה למעלה בסרגל הכלים ולשחזר את גובה ההפעלה ההתחלתי על-ידי גרירה צריך ללחוץ על החץ למטה.
עבור מסכים גדולים או מכשירים בפריסה לרוחב, החל מ-Chrome 120, ניתן לציין, רוחב הפעלה מקסימלי להצגה של כרטיסייה חלקית בהתאמה אישית בצד גיליון. על ידי הגדרת נקודת עצירה, אפשר להחליט מתי להשיק חלק משותף בהתאמה אישית מקישים על Tab בגיליון התחתון או בגיליון צדדי.
דרישות מוקדמות
כדי להשתמש בחלק מהכרטיסיות המותאמות אישית, אתם צריכים:
התחלת סשן חדש בדפדפן באמצעות
CustomTabsServiceConnection
ומעבירים אותה ל-Intent של כרטיסיות מותאמות אישית,להתחיל את הפעילות בכרטיסייה 'בהתאמה אישית' באמצעות
startActivityForResult()
כדאי לשלב את שתי הגישות אם רוצים הפעלה מהירה במקרה שהשירות טרם נוצר חיבור.
הגדרת הגיליון התחתון
כדי להפוך כרטיסייה 'בהתאמה אישית' לכרטיסייה 'מותאמת אישית' חלקית, צריך להגדיר את גובה ההפעלה ההתחלתי
בפיקסלים, באמצעות קריאה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);
הכרטיסייה 'בהתאמה אישית' תפעל כגיליון צדדי אם רוחב המסך גדול מ-
ערך נקודת העצירה (breakpoint) שהוגדר
setActivitySideSheetBreakpointDp().
אם רוחב המסך גבוה מ-x
, הכרטיסייה 'בהתאמה אישית' תפעל כצידי
גיליון אלקטרוני. אחרת, הוא יפעל כגיליון תחתון. אם אין נקודת עצירה (breakpoint)
שצוין, צריך להגדיר את הטמעת הדפדפן כערך ברירת המחדל 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))
הפעלה של כרטיסייה חלקית בהתאמה אישית דרך startActivityForתוצאה
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);
}
});
}
השלב הבא: איך מודדים את התעניינות המשתמשים בכרטיסיות המותאמות אישית