Android — setToolbarColor(int) и setSecondaryToolbarColor(int) устарели

Я использую этот код для открытия ссылок с помощью пользовательских вкладок Chrome. Но он показывает @Deprecated вместо setToolbarColor() и setSecondaryToolbarColor(). на замену ничего не нашел.

Примечание. Студия Android предлагает вместо этого использовать setDefaultColorSchemeParams. но таких примеров не нашел.

        Uri uri = Uri.parse(url);
        CustomTabsIntent.Builder intentBuilder = new CustomTabsIntent.Builder();
        intentBuilder.setToolbarColor(ContextCompat.getColor(activity,R.color.background));
        intentBuilder.setSecondaryToolbarColor(ContextCompat.getColor(activity,R.color.background));
        intentBuilder.setStartAnimations(activity,R.anim.slide_in_right,R.anim.slide_out_left);
        intentBuilder.setExitAnimations(activity,android.R.anim.slide_in_left,android.R.anim.slide_out_right);
        CustomTabsIntent customTabsIntent = intentBuilder.build();
        customTabsIntent.launchUrl(activity,uri);

person Community    schedule 13.12.2020    source источник


Ответы (1)


Вместо этого используйте CustomTabColorSchemeParams: Справочник

Uri uri = Uri.parse(url);
CustomTabsIntent.Builder intentBuilder = new CustomTabsIntent.Builder();
CustomTabColorSchemeParams params = new CustomTabColorSchemeParams.Builder()
    .setNavigationBarColor(ContextCompat.getColor(activity,R.color.background))
    .setToolbarColor(ContextCompat.getColor(activity,R.color.background))
    .setSecondaryToolbarColor(ContextCompat.getColor(activity,R.color.background))
    .build();
intentBuilder.setColorSchemeParams(CustomTabsIntent.COLOR_SCHEME_DARK, params);
intentBuilder.setStartAnimations(activity, R.anim.slide_in_right,R.anim.slide_out_left);
intentBuilder.setExitAnimations(activity,android.R.anim.slide_in_left,android.R.anim.slide_out_right);
CustomTabsIntent customTabsIntent = intentBuilder.build();
customTabsIntent.launchUrl(activity,uri);
person MLFR2kx    schedule 13.12.2020
comment
Также добавьте .setToolbarColor(ContextCompat.getColor(activity, R.color.background)) к params и установите intentBuilder.setColorScheme(CustomTabsIntent.COLOR_SCHEME_DARK). - person CoolMind; 14.12.2020
comment
@CoolMind Спасибо. Я отредактировал свой ответ, чтобы поддержать setToolbarColor. - person MLFR2kx; 15.12.2020
comment
Вы проверили ответ без intentBuilder.setColorScheme(CustomTabsIntent.COLOR_SCHEME_DARK) или по умолчанию? В моем случае он рисует белую панель инструментов. - person CoolMind; 15.12.2020
comment
@CoolMind CustomTabsIntent.COLOR_SCHEME_DARK у меня не работает и вызывает сбой. - person ; 15.12.2020
comment
@Arghadip, это странно. На эмуляторе или устройстве (какое устройство) с каким исключением? В моем случае это не работает с COLOR_SCHEME_SYSTEM. - person CoolMind; 15.12.2020
comment
@CoolMind Это был эмулятор Pixel 2XL [api 30]. Исключение не помню. - person ; 16.12.2020
comment
@Arghadip, я тестировал на эмуляторе и устройстве Nexus 5 (API 30). Я думаю, мы должны протестировать эти случаи на устройствах. См. stackoverflow.com/questions/61295936/. Не могли бы вы попробовать вместо этого .setDefaultColorSchemeParams(params)? - person CoolMind; 16.12.2020
comment
Вместо setColorSchemeParams(CustomTabsIntent.COLOR_SCHEME_DARK, params) вы должны попробовать setDefaultColorSchemeParams(params) - person Talu; 23.04.2021