Cri*_*ero 11 android android-actionbar-compat
我想使支持库中的ActionBar完全透明,但是,由于背景堆栈,似乎更改背景drawable是不够的.如果你放置一个半透明的背景,你最后会得到它背后的默认背景.
有谁知道删除该背景的方法?
这是发生的事情:
背景drawable的代码:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#66336688"/>
</shape>
Run Code Online (Sandbox Code Playgroud)
如您所见,drawable具有透明蓝色,与默认的灰色背景重叠.
Cri*_*ero 22
好的,我发现解决方案搞乱了SDK.看起来很简单,你需要做3件事:
像这样创建一个ActionBar样式:
<!-- Application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light">
<item name="android:actionBarStyle">@style/MyActionBar</item>
<!-- Support library compatibility -->
<item name="actionBarStyle">@style/MyActionBar</item>
</style>
<!-- ACTION BAR STYLES -->
<style name="MyActionBar" parent="@style/Widget.AppCompat.ActionBar">
<item name="android:background">@drawable/actionbar_background</item>
<item name="android:windowActionBarOverlay">true</item>
<!-- Support library compatibility -->
<item name="background">@drawable/actionbar_background</item>
<item name="windowActionBarOverlay">true</item>
</style>
Run Code Online (Sandbox Code Playgroud)使用Support方法对ActionBar overlay使用Window功能(忽略Eclipse关于常量的API级别的警告;我使用SuppressLint注释来删除警告):
@SuppressLint("InlinedApi") @Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
supportRequestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY);
setContentView(R.layout.activity_home);}
Run Code Online (Sandbox Code Playgroud)ChristianGuerrero回答很棒,但你应该直接把这个项目:
<item name="android:windowActionBarOverlay">true</item>
Run Code Online (Sandbox Code Playgroud)
在AppTheme风格内.然后,您不必在onCreate方法中添加任何内容.
归档时间: |
|
查看次数: |
5188 次 |
最近记录: |