我正在使用Chrome自定义标签在我的应用中显示网页内容。显然,其中一个主要优点是能够在选项卡中更改UI颜色。但是,我需要将状态栏颜色更改为我提供的较暗版本的原色。
有没有这样做?
供参考,这是我的代码。
CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder();
builder.setToolbarColor(getResources().getColor(R.color.colorPrimary));
builder.setSecondaryToolbarColor(getResources().getColor(R.color.colorPrimary));
CustomTabsIntent customTabsIntent = builder.build();
customTabsIntent.launchUrl(MainActivity.this, Uri.parse(url));
正如您可能猜到的,我想将状态栏颜色更改为R.color.colorPrimary
而不是自动选择的颜色。
非常感谢任何帮助
答案 0 :(得分:0)
目前,使用自定义标签时无法更改状态栏颜色。您可以自CustomTabsIntent.Builder
@Override
public void onStart() {
super.onStart();
setStatusBarColor(R.color.colorPrimaryDark);
}
private void setStatusBarColor(int colorId) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Window window = getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.setStatusBarColor(ContextCompat.getColor(this, colorId));
}
private void showUrl(String url) {
setStatusBarColor(R.color.colorPrimary);
yourCustomTabsIntent.launchUrl(this, Uri.parse(url));
}
查看source code,查看您可以自定义的内容或查看documentation。
我自己也没有尝试过,但是如果你的目标是api> = 21(Lollipop),我认为以下代码可以解决。
<script>(function() {
var _fbq = window._fbq || (window._fbq = []);
if (!_fbq.loaded) {
var fbds = document.createElement('script');
fbds.async = true;
fbds.src = '//connect.facebook.net/en_US/fbds.js';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(fbds, s);
_fbq.loaded = true;
}
_fbq.push(['addPixelId', "1234567890"]);
})();
window._fbq = window._fbq || [];
window._fbq.push(["track", "PixelInitialized", {}]);
</script>
<noscript><img height="1" width="1" border="0" alt="" style="display:none" src="https://www.facebook.com/tr?id=1234567890&ev=NoScript" /></noscript>