显示ImageView部分在透明的ActionBar后面
Google Maps应用程序有一个透明的ActionBar,通过它可以看到地图。
我能够使用这个设置ActionBar的透明度:
<style name="Theme.MyTheme" parent="android:style/Theme.Holo.Light"> <item name="android:actionBarStyle">@style/ActionBar</item> </style> <style name="ActionBar" parent="@android:style/Widget.Holo.ActionBar"> <item name="android:background">#64000000</item> </style>
但是如何在ActionBar后面显示我的ImageView?
您可以启用ActionBar
重叠模式。 要做到这一点,你必须在主题中设置(android:)windowActionBarOverlay
项为true
。
<style name="MyTheme" parent="Theme.Sherlock"> ... <item name="windowActionBarOverlay">true</item> <!-- for ActionBarSherlock --> <item name="android:windowActionBarOverlay">true</item> </style>
你也可以在运行时设置它:
requestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY);
这将是ActionBar一个半透明的浮动栏。
像任何requestWindowFeature...
,在添加内容之前应该调用它。
在setContentView
,您可以使用以下方法从Drawable
设置背景:
getActionBar().setBackgroundDrawable(getResources().getDrawable(R.drawable.actionbar_bg));
对于ActionBarSherlock,使用getSupportActionBar
更改getActionBar
带有shape元素的actionbar_bg.xml
:
<solid android:color="#64000000" />
虽然我发现Tomik的解决scheme很好,但对于那些一次性的案件而言,这对于一些活动而不是全盘的风格是有用的。
如果有人需要透明栏,但只有在某些活动中使用透明栏,而在其他栏中使用透明栏时,可能需要创build两种不同的样式,并使用清单来控制它:
<style name="MyThemeOverlay" parent="Theme.Sherlock"> ... <item name="windowActionBarOverlay">true</item> <!-- for ActionBarSherlock --> <item name="android:windowActionBarOverlay">true</item> <!-- any stuff common here, colours, etc --> <!-- define the style for native ActionBar for Android 4 and higher --> <item name="android:actionBarStyle">@style/myActionbarTransparent</item> <!-- define the style for ActionBarSherlock --> <item name="actionBarStyle">@style/myActionbarTransparent</item> </style> <style name="MyThemeNoOverlay" parent="MyTheme"> <item name="windowActionBarOverlay">false</item> <!-- for ActionBarSherlock --> <item name="android:windowActionBarOverlay">false</item> <!-- any stuff specific for no overlay activity action bars --> <!-- define the style for native ActionBar for Android 4 and higher --> <item name="android:actionBarStyle">@style/myActionbar</item> <!-- define the style for ActionBarSherlock --> <item name="actionBarStyle">@style/myActionbar</item> </style> <style name="myActionbar" parent="@android:style/Widget.Holo.ActionBar"> <item name="android:background">@color/white</item> </style> <style name="myActionbarTransparent" parent="@android:style/Widget.Holo.ActionBar"> <item name="android:background">@color/transparent</item> </style>
然后在您的AndroidManifest.xml
您可以使用其中一个作为默认值,另一个用于某些特定的活动,方法如下:
<application ... android:theme="@style/MyThemeOverlay"> ... <activity android:name=".Activity1" /> <activity android:name=".Activity2" android:theme="@style/MyThemeNoOverlay" /> <activity android:name=".Activity3" /> <activity android:name=".Activity4" android:theme="@style/MyThemeNoOverlay" />
…
- Android ActionBar自定义search视图
- 引起:java.lang.UnsupportedOperationException:无法转换为维:type = 0x1
- ActionBarSherlock – typesandroid.support.v4.app.Fragment无法parsing。 它是从所需的.class文件间接引用的
- 将项目导入到Android Studio中有关ActionBarSherlock的问题
- 设置Slidemenu – 示例不工作
- 如何在ActionBar中显示自定义视图?
- Android:getSupportActionBar()总是在ActionBarSherlock库中返回null
- 在ViewPager中使用选项卡时,出现错误“Java.lang.IllegalStateException活动已被破坏”
- ActionBarSherlock堆叠的行动酒吧造型问题