Domyślnie karty niestandardowe uruchamiają się w trakcie całego okna. Uruchamiam w Chrome 107, możesz użyć częściowych kart niestandardowych, aby określić inną wysokość uruchamiania w w trybie portretowym, dzięki czemu użytkownicy mogą wykonywać wiele zadań jednocześnie, korzystając z aplikacji przeglądanie treści internetowych. Użytkownicy mogą rozwinąć kartę niestandardową na pełny ekran, przeciągając ją uchwyt paska narzędzi do góry i przywrócić początkową wysokość uruchamiania, przeciągając w dół.
W przypadku dużych ekranów lub urządzeń w trybie poziomym, począwszy od Chrome 120, można określić maksymalną szerokość uruchamiania, aby wyświetlić z boku część karty niestandardowej arkusza kalkulacyjnego. Po ustawieniu punktu przerwania możesz określić, kiedy chcesz uruchomić częściowy tag niestandardowy Tab u dołu lub na arkuszu bocznym.
.Warunek wstępny
Aby korzystać z części kart niestandardowych, musisz:
rozpoczynanie nowej sesji przeglądarki za pomocą pola
CustomTabsServiceConnection
, i przekazać ją do intencji związanych z kartami niestandardowymi,rozpocznij aktywność na karcie niestandardowej za pomocą
startActivityForResult()
Połącz oba podejścia, jeśli chcesz szybko uruchomić usługę w przypadku usługi nie nawiązano jeszcze połączenia.
Konfiguruję planszę dolną
Aby przekształcić kartę niestandardową w częściową kartę niestandardową, określ jej początkową wysokość
w pikselach przez wywołanie klasy CustomTabBuilder
setInitialActivityHeightPx()
.
. Domyślnie częściową kartę niestandardową można zmienić,
ACTIVITY\_HEIGHT\_FIXED
aby wyłączyć to działanie:
new CustomTabsBuilder().setInitialActivityHeightPx(
400,
ACTIVITY_HEIGHT_FIXED
);
Konfigurowanie arkusza bocznego
Aby skonfigurować działanie arkusza bocznego, określ szerokość początkowego uruchamiania w pikselach przez
wywołuje metodę CustomTabBuilder
zajęć
setInitialActivityWidthPx()
.
.
Domyślnie częściową kartę niestandardową można zmienić,
ACTIVITY\_HEIGHT\_FIXED
aby wyłączyć to działanie:
CustomTabsIntent.Builder intentBuilder = new CustomTabsIntent.Builder(session)
.setInitialActivityHeightPx(400)
.setInitialActivityWidthPx(400);
.setActivitySideSheetBreakpointDp(800);
Karta niestandardowa będzie działać jako arkusz boczny, jeśli szerokość ekranu jest większa niż
wartość punktu przerwania ustawiona przez
setActivitySideSheetBreakpointDp().
Jeśli szerokość ekranu jest większa niż x
, karta niestandardowa będzie działać jak bok
w przeciwnym razie będzie działał jako plansza dolna. Jeśli brak punktu przerwania
ustaw implementację przeglądarki na wartość domyślną 840dp
.
Jeśli zasada x
ma wartość <600dp
, implementacja przeglądarki powinna mieć wartość domyślną.
600dp
Uruchamianie częściowej karty niestandardowej z dotychczasową sesją
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))
Uruchom częściowo kartę niestandardową przez 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);
}
});
}
Kolejny krok: dowiedz się, jak mierzyć zaangażowanie użytkowników na kartach niestandardowych.