Como personalizar a IU

Uma vantagem das guias personalizadas é que elas podem ser perfeitamente integradas ao seu app. Nesta parte do guia de guias personalizadas, você aprenderá a alterar a aparência e o comportamento de uma guia personalizada para combinar com seu app.

Definir a cor da barra de ferramentas

Guia personalizada com um esquema personalizado de cores claras
Modo claro
Guia personalizada com um esquema personalizado de cores escuras
Modo escuro

Primeiro, personalizar a barra de endereço da guia Personalizada para que seja consistente com o tema do aplicativo. O snippet abaixo muda a cor padrão da barra de ferramentas chamando setDefaultColorSchemeParams(). Caso o app também ofereça suporte a um esquema de cores escuras, defina esse esquema usando o .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();

A barra de ferramentas agora tem cores personalizadas de primeiro e segundo plano.

Configurar animação personalizada de entrada e saída

Em seguida, você pode tornar a inicialização (e a saída) de uma experiência de guia personalizada no app mais integrada, definindo animações personalizadas de início e saída usando setStartAnimation e 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();

Outras personalizações: título, ocultação automática de AppBar e ícone personalizado para fechar

Existem mais algumas coisas que você pode fazer para ajustar a interface de uma guia personalizada de acordo com suas necessidades.

  • Oculte a barra de URL na rolagem para dar ao usuário mais espaço para explorar o conteúdo da Web usando setUrlBarHidingEnabled()(true).
  • Mostre o título do documento em vez do URL usando setShowTitle()(true).
  • Personalize o botão "Fechar" para corresponder ao fluxo do usuário no app, por exemplo, mostrando uma seta para voltar em vez do ícone padrão X: setCloseButtonIcon()(myCustomCloseIcon).

Essas opções são opcionais, mas podem melhorar a experiência da guia personalizada no seu app.

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

Como configurar um referenciador personalizado

Você pode definir seu aplicativo como o referenciador ao iniciar a guia personalizada. Assim, você informa aos sites a origem do tráfego.

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

A seguir: saiba como adicionar ações à guia "Personalizada".