Secara default, Tab Khusus diluncurkan sebagai aktivitas jendela penuh. Mulai Chrome 107, Anda dapat menggunakan Tab Khusus parsial untuk menentukan tinggi peluncuran yang berbeda dalam mode potret sehingga pengguna dapat melakukan banyak hal sekaligus dengan berinteraksi dengan aplikasi Anda saat melihat konten web. Pengguna dapat meluaskan Tab Khusus ke layar penuh dengan menarik gagang toolbar ke atas dan memulihkan tinggi peluncuran awal dengan menarik tuas ke bawah.
![Screenshot Tab Parsial sheet bawah](https://developer.chrome.google.cn/static/docs/android/custom-tabs/guide-partial-custom-tabs/image/example-partial-tab-ff19cab6a28dd.png?authuser=19&hl=id)
Untuk perangkat layar besar atau perangkat dalam mode lanskap, mulai Chrome 120, Anda dapat menentukan lebar peluncuran maksimum untuk menampilkan Tab Khusus sebagian di sheet samping. Dengan menetapkan titik jeda, Anda dapat memutuskan waktu untuk meluncurkan Tab Khusus sebagian di bagian bawah atau sheet samping.
![Screenshot Tab Parsial sheet samping](https://developer.chrome.google.cn/static/docs/android/custom-tabs/guide-partial-custom-tabs/image/example-partial-tab-sidesheet.jpg?authuser=19&hl=id)
Prasyarat
Untuk dapat menggunakan Tab Khusus sebagian, Anda harus:
memulai sesi browser baru menggunakan
CustomTabsServiceConnection
dan meneruskannya ke intent Tab Khusus ataumulai aktivitas Tab Khusus menggunakan
startActivityForResult()
.
Gabungkan kedua pendekatan ini jika Anda menginginkan startup cepat jika koneksi layanan belum dibuat.
Mengonfigurasi sheet bawah
Untuk mengubah Tab Khusus menjadi Tab Khusus parsial, tentukan tinggi peluncuran awal
dalam piksel dengan memanggil metode
setInitialActivityHeightPx()
class CustomTabBuilder
. Secara default, Tab Kustom sebagian dapat diubah ukurannya, tetapi Anda dapat meneruskan
ACTIVITY\_HEIGHT\_FIXED
untuk menonaktifkan perilaku ini:
new CustomTabsBuilder().setInitialActivityHeightPx(
400,
ACTIVITY_HEIGHT_FIXED
);
Mengonfigurasi sheet samping
Untuk mengonfigurasi perilaku sheet samping, tentukan lebar peluncuran awal dalam piksel dengan
memanggil metode
setInitialActivityWidthPx()
class CustomTabBuilder
.
Secara default, Tab Kustom sebagian dapat diubah ukurannya, tetapi Anda dapat meneruskan
ACTIVITY\_HEIGHT\_FIXED
untuk menonaktifkan perilaku ini:
CustomTabsIntent.Builder intentBuilder = new CustomTabsIntent.Builder(session)
.setInitialActivityHeightPx(400)
.setInitialActivityWidthPx(400);
.setActivitySideSheetBreakpointDp(800);
Tab Khusus akan berperilaku sebagai sheet samping jika lebar layar lebih besar dari
nilai titik henti sementara yang ditetapkan oleh
setActivitySideSheetBreakpointDp().
Jika lebar layar lebih tinggi dari x
, Tab Khusus akan berperilaku sebagai sheet
samping. Jika tidak, Tab Khusus akan berperilaku sebagai sheet bawah. Jika tidak ada titik henti sementara yang ditentukan, tetapkan implementasi browser yang harus ditetapkan sebagai nilai default 840dp
.
Jika x
disetel ke <600dp
, implementasi browser harus menyetelnya secara default ke
600dp
.
Meluncurkan Tab Khusus sebagian dengan sesi yang ada
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))
Luncurkan Tab Khusus sebagian melalui 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);
}
});
}
Selanjutnya: pelajari cara mengukur interaksi pengguna di Tab Khusus Anda.