Varsayılan olarak, Özel Sekmeler tam pencere etkinliği olarak başlatılır. Chrome 107'den itibaren, dikey modda farklı bir başlatma yüksekliği belirtmek için kısmi Özel Sekmeleri kullanabilirsiniz. Böylece kullanıcılar, web içeriğini görüntülerken uygulamanızla etkileşimde bulunarak çoklu görev gerçekleştirebilir. Kullanıcılar, araç çubuğu tutamacını yukarı sürükleyerek Özel Sekme'yi tam ekrana genişletebilir ve tutma yerini aşağı sürükleyerek ilk başlatma yüksekliğini geri yükleyebilir.
![Alt sayfadaki kısmi sekmenin ekran görüntüsü](https://developer.chrome.com/static/docs/android/custom-tabs/guide-partial-custom-tabs/image/example-partial-tab-ff19cab6a28dd.png?authuser=5&hl=tr)
Chrome 120'den itibaren yatay moddaki büyük ekranlar veya cihazlar için yan sayfada kısmi bir Özel Sekme göstermek üzere maksimum bir başlatma genişliği belirtebilirsiniz. Bir ayrılma noktası ayarlayarak, alt veya yan sayfada kısmi bir Özel Sekmenin ne zaman başlatılacağına karar verebilirsiniz.
![Bir yan sayfadaki kısmi sekmenin ekran görüntüsü](https://developer.chrome.com/static/docs/android/custom-tabs/guide-partial-custom-tabs/image/example-partial-tab-sidesheet.jpg?authuser=5&hl=tr)
Ön koşul
Kısmi Özel Sekmeleri kullanabilmek için aşağıdakileri yapmanız gerekir:
CustomTabsServiceConnection
kullanarak yeni bir tarayıcı oturumu başlatın ve bunu Özel Sekmeler amacına veyastartActivityForResult()
kullanarak Özel Sekme etkinliğini başlatın.
Hizmet bağlantısının henüz kurulamaması ihtimaline karşı hızlı bir başlatma istiyorsanız her iki yaklaşımı da kullanın.
Alt sayfayı yapılandırma
Bir Özel Sekmeyi kısmi bir Özel Sekmeye dönüştürmek için CustomTabBuilder
sınıfının setInitialActivityHeightPx()
yöntemini çağırarak başlangıç yüksekliğini piksel olarak tanımlayın. Varsayılan olarak, Özel Sekmenin bir bölümü yeniden boyutlandırılabilir ancak bu davranışı devre dışı bırakmak için ACTIVITY\_HEIGHT\_FIXED
değerini iletebilirsiniz:
new CustomTabsBuilder().setInitialActivityHeightPx(
400,
ACTIVITY_HEIGHT_FIXED
);
Yan sayfayı yapılandırma
Yan sayfa davranışını yapılandırmak için CustomTabBuilder
sınıfının setInitialActivityWidthPx()
yöntemini çağırarak başlangıç genişliğini piksel cinsinden tanımlayın.
Varsayılan olarak, Özel Sekmenin bir bölümü yeniden boyutlandırılabilir ancak bu davranışı devre dışı bırakmak için ACTIVITY\_HEIGHT\_FIXED
değerini iletebilirsiniz:
CustomTabsIntent.Builder intentBuilder = new CustomTabsIntent.Builder(session)
.setInitialActivityHeightPx(400)
.setInitialActivityWidthPx(400);
.setActivitySideSheetBreakpointDp(800);
Ekranın genişliği setActivitySideSheetBreakpointDp() tarafından ayarlanan ayrılma noktası değerinden büyükse Özel Sekme yan sayfa gibi davranır. Ekranın genişliği x
değerinden büyükse Özel Sekme, yan sayfa, aksi takdirde alt sayfa gibi davranır. Herhangi bir ayrılma noktası belirtilmezse tarayıcı uygulamasının varsayılan değer olarak ayarlanması gereken 840dp
değerini ayarlayın.
x
, <600dp
değerine ayarlanırsa tarayıcı uygulaması varsayılan olarak 600dp
değerine ayarlanır.
Mevcut bir oturumu kullanarak kısmi bir Özel Sekme başlatma
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 aracılığıyla kısmi bir Özel Sekme başlatın
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);
}
});
}
Sıradaki: Özel Sekmelerinizde kullanıcı etkileşimini nasıl ölçeceğinizi öğrenin.