Benutzerdefinierte Tabs werden standardmäßig als Vollbildaktivität gestartet. Starten in Chrome können Sie teilweise benutzerdefinierte Tabs verwenden, um eine andere Höhe für den Start in im Hochformat. So können Nutzer mehrere Dinge gleichzeitig tun, während sie mit der App interagieren, Webinhalte ansehen. Nutzer können den benutzerdefinierten Tab durch Ziehen des Symbolleistenziehpunkts nach oben und stellen Sie die anfängliche Höhe durch Ziehen des Ziehpunkt nach unten.
<ph type="x-smartling-placeholder">Auf großen Bildschirmen oder Geräten im Querformat, ab Chrome 120, eine maximale Breite für den Start angeben, damit ein Teil eines benutzerdefinierten Tabs auf einer Seite angezeigt wird. Tabellenblatt. Durch das Festlegen eines Haltepunkts können Sie entscheiden, wann ein benutzerdefinierter Teil einer benutzerdefinierten Tabulatortaste drücken Sie in einer Ansicht am unteren Rand oder in einer Seitenansicht.
<ph type="x-smartling-placeholder">Vorbereitung
Wenn du benutzerdefinierte Tabs nur teilweise verwenden möchtest, musst du Folgendes tun:
Starten einer neuen Browsersitzung mit einem
CustomTabsServiceConnection
und an den Intent für benutzerdefinierte Tabs übergeben oderAktivität auf dem benutzerdefinierten Tab starten mit
startActivityForResult()
Kombinieren Sie beide Ansätze, wenn Sie einen schnellen Start wünschen, falls der Dienst Verbindung wurde noch nicht hergestellt.
Ansicht am unteren Rand konfigurieren
Wenn Sie einen benutzerdefinierten Tab in einen partiellen benutzerdefinierten Tab umwandeln möchten, legen Sie die Höhe für den anfänglichen Start fest
in Pixeln, indem die Methode der Klasse CustomTabBuilder
aufgerufen wird
setInitialActivityHeightPx()
. Standardmäßig kann die Größe des benutzerdefinierten Tabs angepasst werden. Sie können jedoch
ACTIVITY\_HEIGHT\_FIXED
um dieses Verhalten zu deaktivieren:
new CustomTabsBuilder().setInitialActivityHeightPx(
400,
ACTIVITY_HEIGHT_FIXED
);
Seitenblatt konfigurieren
Um das Verhalten der Seitenleiste zu konfigurieren, definieren Sie die Breite des anfänglichen Starts in Pixeln, indem Sie
die Methode CustomTabBuilder
der Klasse
setInitialActivityWidthPx()
.
Standardmäßig kann die Größe des benutzerdefinierten Tabs angepasst werden. Sie können jedoch
ACTIVITY\_HEIGHT\_FIXED
um dieses Verhalten zu deaktivieren:
CustomTabsIntent.Builder intentBuilder = new CustomTabsIntent.Builder(session)
.setInitialActivityHeightPx(400)
.setInitialActivityWidthPx(400);
.setActivitySideSheetBreakpointDp(800);
Der benutzerdefinierte Tab verhält sich wie eine seitliche Ansicht, wenn die Bildschirmbreite größer als
Breakpoint-Wert, der von
setActivitySideSheetBreakpointDp() von Google Tabellen verwendet werden.
Wenn die Bildschirmbreite größer als x
ist, verhält sich der benutzerdefinierte Tab wie eine seitliche Ansicht.
Andernfalls verhält sie sich wie ein Blatt am unteren Rand. Wenn kein Haltepunkt
angegeben ist, muss die Browserimplementierung als Standardwert 840dp
festgelegt werden.
Wenn x
auf <600dp
gesetzt ist, sollte die Browserimplementierung diese standardmäßig verwenden:
600dp
Einen Teil eines benutzerdefinierten Tabs mit einer bestehenden Sitzung starten
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))
Teilweisen benutzerdefinierten Tab über startActivityForResult öffnen
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);
}
});
}
Nächster Teil: Nutzerinteraktionen auf Ihren benutzerdefinierten Tabs messen