Dostosowywanie interfejsu użytkownika

Jedną z zalet kart niestandardowych jest to, że można je płynnie zintegrować z aplikacją. Z tej części przewodnika po kartach niestandardowych dowiesz się, jak zmienić wygląd i działanie takich kart, aby pasowały do Twojej aplikacji.

Ustaw kolor paska narzędzi.

Karta niestandardowa z niestandardowym jasnym schematem kolorów
Tryb jasny
Karta niestandardowa z niestandardowym ciemnym schematem kolorów
Tryb ciemny

Najpierw dostosuj pasek adresu karty niestandardowej, aby był zgodny z motywem aplikacji. Fragment kodu poniżej zmienia domyślny kolor paska narzędzi, wywołując metodę setDefaultColorSchemeParams(). Jeśli aplikacja obsługuje też ciemny schemat kolorów, ustaw go za pomocą opcji .setColorSchemeParams(CustomTabsIntent.COLOR_SCHEME_DARK, …).

// get the current toolbar background color (this might work differently in your app)
@ColorInt int colorPrimaryLight = ContextCompat.getColor(MainActivity.this, R.color.md_theme_light_primary);
@ColorInt int colorPrimaryDark = ContextCompat.getColor(MainActivity.this, R.color.md_theme_dark_primary);

CustomTabsIntent intent = new CustomTabsIntent.Builder()
        // set the default color scheme
        .setDefaultColorSchemeParams(new CustomTabColorSchemeParams.Builder()
                .setToolbarColor(colorPrimaryLight)
                .build())
        // set the alternative dark color scheme
        .setColorSchemeParams(CustomTabsIntent.COLOR_SCHEME_DARK, new CustomTabColorSchemeParams.Builder()
                .setToolbarColor(colorPrimaryDark)
                .build())
        .build();

Pasek narzędzi ma teraz niestandardowe kolory tła i pierwszego planu.

Skonfiguruj niestandardową animację wejścia i wyjścia

Następnie możesz ułatwić sobie uruchamianie (i opuszczanie) karty niestandardowej w aplikacji, definiując niestandardowe animacje rozpoczęcia i zakończenia za pomocą interfejsów setStartAnimation i setExitAnimation:

CustomTabsIntent intent = new CustomTabsIntent.Builder()

.setStartAnimations(MainActivity.this, R.anim.slide_in_right, R.anim.slide_out_left)
.setExitAnimations(MainActivity.this, android.R.anim.slide_in_left, android.R.anim.slide_out_right)
.build();

Dalsze dostosowywanie: tytuł, autoukrywanie paska aplikacji i niestandardowa ikona zamykania.

Jest jeszcze kilka rzeczy, które możesz zrobić, aby dostosować interfejs karty niestandardowej do swoich potrzeb.

  • Ukryj pasek adresu URL przy przewijaniu, aby zapewnić użytkownikowi więcej miejsca na przeglądanie treści internetowych za pomocą funkcji setUrlBarHidingEnabled()(true).
  • Pokaż tytuł dokumentu zamiast jego adresu URL za pomocą funkcji setShowTitle()(true).
  • Dostosuj przycisk zamykania, aby odpowiadał schematowi użytkownika w Twojej aplikacji. Możesz na przykład wyświetlać strzałkę wstecz zamiast domyślnej ikony X): setCloseButtonIcon()(myCustomCloseIcon).

Wszystkie te działania są opcjonalne, ale mogą poprawić działanie karty niestandardowej w aplikacji.

Bitmap myCustomCloseIcon = getDrawable(R.drawable.ic_baseline_arrow_back_24));
CustomTabsIntent intent = new CustomTabsIntent.Builder()
  
  .setUrlBarHidingEnabled(true)
  .setShowTitle(true)
  .setCloseButtonIcon(toBitmap(myCustomCloseIcon))
  .build();

Ustawianie niestandardowej strony odsyłającej

Możesz ustawić swoją aplikację jako stronę odsyłającą przy uruchamianiu karty niestandardowej. W ten sposób możesz poinformować witryny, skąd pochodzi ruch.

CustomTabsIntent customTabsIntent = new CustomTabsIntent.Builder().build()
customTabsIntent.intent.putExtra(Intent.EXTRA_REFERRER,
       Uri.parse("android-app://" + context.getPackageName()));

Kolejny krok: dowiedz się, jak dodać do karty niestandardowej działanie niestandardowe.