כברירת מחדל, כרטיסיות בהתאמה אישית מופעלות כפעילות בחלון מלא. החל מגרסה 107 של Chrome, אפשר להשתמש בכרטיסיות מותאמות אישית חלקיות כדי לציין גובה אחר של הפעלה במצב לאורך, כדי שהמשתמשים יוכלו לבצע כמה משימות בו-זמנית על ידי אינטראקציה עם האפליקציה שלכם בזמן הצפייה בתוכן אינטרנט. המשתמשים יכולים להרחיב את הכרטיסייה המותאמת אישית למסך מלא על ידי גרירה של הידית בסרגל הכלים למעלה, ולשחזר את גובה ההפעלה הראשונית על ידי גרירה של הידית למטה.
במסכים גדולים או במכשירים בפריסה לרוחב, החל מגרסה 120 של Chrome, אפשר לציין את רוחב ההפעלה המקסימלי כדי להציג כרטיסייה מותאמת אישית חלקית בחלונית צדדית. הגדרת נקודת עצירה מאפשרת לכם לקבוע מתי להציג כרטיסייה מותאמת אישית חלקית בגיליון תחתון או בגיליון צדדי.
דרישות מוקדמות
כדי להשתמש בכרטיסיות מותאמות אישית חלקיות, צריך:
מתחילים סשן חדש בדפדפן באמצעות
CustomTabsServiceConnection
ומעבירים אותו לכוונת הרכישה של הכרטיסיות בהתאמה אישית, אומפעילים את הפעילות 'כרטיסייה בהתאמה אישית' באמצעות
startActivityForResult()
.
אם רוצים הפעלה מהירה במקרה שחיבור השירות עדיין לא הוקם, אפשר לשלב בין שתי הגישות.
הגדרת הגיליון התחתון
כדי להפוך כרטיסייה מותאמת אישית לכרטיסייה מותאמת אישית חלקית, מגדירים את הגובה הראשוני של ההפעלה בפיקסלים על ידי קריאה ל-method setInitialActivityHeightPx()
של הכיתה CustomTabBuilder
. כברירת מחדל, אפשר לשנות את הגודל של הכרטיסייה המותאמת אישית חלקית, אבל אפשר להעביר את הערך ACTIVITY\_HEIGHT\_FIXED
כדי להשבית את ההתנהגות הזו:
new CustomTabsBuilder().setInitialActivityHeightPx(
400,
ACTIVITY_HEIGHT_FIXED
);
הגדרת הגיליון הצדדי
כדי להגדיר את התנהגות הכרטיסייה הצדדית, מגדירים את רוחב ההפעלה הראשונית בפיקסלים באמצעות קריאה ל-method setInitialActivityWidthPx()
של הכיתה CustomTabBuilder
.
כברירת מחדל, אפשר לשנות את הגודל של הכרטיסייה המותאמת אישית חלקית, אבל אפשר להעביר את הערך 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);
}
});
}
בשלב הבא: איך מודדים את התעניינות המשתמשים בכרטיסיות בהתאמה אישית.