Android 棒棒糖中的透明 actionBar 和 statusBar
Transparent actionBar and statusBar in Android lollipop
我正在尝试创建这个界面:
这是我的实际结果:
- 状态栏透明度很好,我们看到我的图片作为背景:好的
- 操作栏不透明:不行
这是我为此使用的主题代码 activity :
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- inherit from the material theme -->
<style name="MaterialAppDetailTheme" parent="android:Theme.Material.Light">
<item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:windowActionBarOverlay">true</item>
<!-- enable window content transitions -->
<item name="android:windowContentTransitions">true</item>
<!-- specify shared element transitions -->
<item name="android:windowSharedElementEnterTransition">
@transition/change_image_transform</item>
<item name="android:windowSharedElementExitTransition">
@transition/change_image_transform</item>
<item name="android:windowTranslucentNavigation">true</item>
<item name="android:windowTranslucentStatus">true</item>
</style>
</resources>
您可以像这样将工具栏颜色更改为透明:
mToolbar.setBackgroundColor(getResources().getColor(android.R.color.transparent));
您也可以在 XML 上更改它的背景:
android:background="@android:color/transparent"
或者,如果您使用的是 ActionBar:
getSupportActionBar().setBackgroundDrawable(new ColorDrawable(getResources().getColor(android.R.color.transparent)));
如果您不使用 ActionBarActivity
,请使用 getActionBar()
结果:
使用这种风格:
<style name="AppTheme" parent="Theme.AppCompat.Light">
<item name="android:textColorPrimary">@color/my_text_color</item>
<item name="colorPrimary">@android:color/transparent</item>
<item name="windowActionBarOverlay">true</item>
</style>
对于 >= 21 的 API,将这些代码行添加到主题中
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:statusBarColor">@android:color/transparent</item>
不要忘记添加
android:fitsSystemWindows="true"
我正在尝试创建这个界面:
这是我的实际结果:
- 状态栏透明度很好,我们看到我的图片作为背景:好的
- 操作栏不透明:不行
这是我为此使用的主题代码 activity :
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- inherit from the material theme -->
<style name="MaterialAppDetailTheme" parent="android:Theme.Material.Light">
<item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:windowActionBarOverlay">true</item>
<!-- enable window content transitions -->
<item name="android:windowContentTransitions">true</item>
<!-- specify shared element transitions -->
<item name="android:windowSharedElementEnterTransition">
@transition/change_image_transform</item>
<item name="android:windowSharedElementExitTransition">
@transition/change_image_transform</item>
<item name="android:windowTranslucentNavigation">true</item>
<item name="android:windowTranslucentStatus">true</item>
</style>
</resources>
您可以像这样将工具栏颜色更改为透明:
mToolbar.setBackgroundColor(getResources().getColor(android.R.color.transparent));
您也可以在 XML 上更改它的背景:
android:background="@android:color/transparent"
或者,如果您使用的是 ActionBar:
getSupportActionBar().setBackgroundDrawable(new ColorDrawable(getResources().getColor(android.R.color.transparent)));
如果您不使用 ActionBarActivity
getActionBar()
结果:
使用这种风格:
<style name="AppTheme" parent="Theme.AppCompat.Light">
<item name="android:textColorPrimary">@color/my_text_color</item>
<item name="colorPrimary">@android:color/transparent</item>
<item name="windowActionBarOverlay">true</item>
</style>
对于 >= 21 的 API,将这些代码行添加到主题中
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:statusBarColor">@android:color/transparent</item>
不要忘记添加
android:fitsSystemWindows="true"