使用操作栏的活动上的透明背景



有谁知道如何使活动背景透明并同时显示操作栏(不透明)?

我试过这个

    <style name="Theme.PureTransparent" parent="android:Theme">
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:windowBackground">@android:color/transparent</item>
        <item name="android:windowContentOverlay">@null</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowIsFloating">false</item>
        <item name="android:backgroundDimEnabled">false</item>
    </style>

但我收到此错误:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.myapp/com.myapp.activities.SearchTitleStrip}: java.lang.NullPointerException
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1967)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1992)
            at android.app.ActivityThread.access$600(ActivityThread.java:127)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1158)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:4441)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.NullPointerException
            at com.myapp.activities.SearchTitleStrip.setActionbarSearch(SearchTitleStrip.java:80)
            at com.myapp.activities.SearchTitleStrip.onCreate(SearchTitleStrip.java:72)
            at android.app.Activity.performCreate(Activity.java:4465)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1931)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1992)
            at android.app.ActivityThread.access$600(ActivityThread.java:127)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1158)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:4441)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke

SearchTitleStrip 类中的第 80 行是以下代码: actionBar.setDisplayShowTitleEnabled(false);

你为什么不直接设置

android:background="#AARRGGBB" 

在活动 XML 中,其中 AA 是 alpha 值(用于透明度级别),后跟红绿蓝。

我通过将其添加到样式中解决了我的问题.xml(我使用了动作栏夏洛克):

<style name="AppTheme.ActionBarTransparentBackground" parent="@style/Widget.Sherlock.ActionBar">
        <item name="background">@android:color/transparent</item>
        <item name="android:background">@android:color/transparent</item>
</style>

最新更新