Secara default, Tab Khusus diluncurkan sebagai aktivitas jendela penuh. Dimulai di Chrome 107, Anda dapat menggunakan Tab Khusus parsial untuk menentukan tinggi peluncuran yang berbeda di mode potret sehingga pengguna dapat melakukan multitasking dengan berinteraksi dengan aplikasi Anda saat melihat konten web. Pengguna dapat memperluas Tab Khusus ke layar penuh dengan menariknya menangani toolbar ke atas dan memulihkan tinggi peluncuran awal dengan menarik ke bawah.
Untuk perangkat layar besar atau perangkat dalam mode lanskap, mulai Chrome 120, Anda dapat menentukan, lebar peluncuran maksimum untuk menampilkan sebagian Tab Khusus di sisi {i>sheet<i}. Dengan menetapkan titik jeda, Anda dapat memutuskan kapan harus meluncurkan Iklan kustom parsial Tekan Tab di bagian bawah atau sheet samping.
Prasyarat
Agar 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 tersebut jika Anda menginginkan startup cepat jika layanan tersebut koneksi belum dibuat.
Mengonfigurasi {i>sheet bawah<i}
Untuk mengubah Tab Khusus menjadi Tab Khusus sebagian, tentukan tinggi peluncuran awal
dalam piksel dengan memanggil CustomTabBuilder
class
setInitialActivityHeightPx()
. Secara default, sebagian Tab Khusus 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 class CustomTabBuilder
setInitialActivityWidthPx()
.
Secara default, sebagian Tab Khusus 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 lembar 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 sisi
{i>sheet<i}, jika tidak, ia akan berperilaku sebagai {i>sheet<i} bawah. Jika tidak ada titik henti sementara
ditetapkan, tetapkan implementasi browser harus ditetapkan sebagai nilai default 840dp
.
Jika x
disetel ke <600dp
, implementasi browser harus ditetapkan secara default ke
600dp
.
Meluncurkan Tab Khusus parsial dengan sesi yang sudah 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.