透明的Android活动麻烦

时间:2014-04-24 10:32:01

标签: android android-layout

我有一个应用程序,主题可以在三个不同的主题之间进行更改。我有两个应该具有透明背景的活动,看起来像是上一个活动之上的对话框。

我已经在堆栈上搜索了很多透明活动,其中大多数都有相同的芒果。具有一些属性的自定义主题,可为相关活动启用透明背景。

对我来说,问题是我需要在父活动上设置这个自定义透明主题,以实现任何透明度。如果我只在活动上设置透明主题,我想要透明,它将是一个坚实的背景。我已经尝试了我能想到的一切,但这一切归结为这一点,我不确定我做错了什么。

这是我的两个不同的父主题(缩小到必要部分):

<style name="StyledActionbar" parent="Theme.Sherlock.Light.ForceOverflow">
    <item name="android:textViewStyle">@style/Iksu.TextView</item>

    <item name="windowContentOverlay">@null</item>
    <item name="android:windowContentOverlay">@null</item>
</style>

<style name="Transparent" parent="Theme.Sherlock.Light.ForceOverflow">
    <item name="android:textViewStyle">@style/TextView</item>

    <item name="windowContentOverlay">@null</item>
    <item name="android:windowContentOverlay">@null</item>

    <item name="android:windowIsTranslucent">true</item>
</style>

StyledActionBar是我的三个不同主题的父级,用于所有不应具有透明背景的活动(除了两个之外的所有活动)。

Transparent是三个主题的父级,可用于背景需要透明的活动。

因此父活动具有基于StyledActionBar主题的主题。我需要透明的活动基于透明主题。

在这种状态下,背景是稳固的。

如果我搬家:

<item name="android:windowIsTranslucent">true</item>

到StyledActionBar,除了Android 4.4.2中的一个令人讨厌的错误之外,几乎所有东西都起到了魅力的作用,导致主要活动落后于#34;使用NavUtils向上导航到主要活动时的操作系统视图。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

再试一次:

<style name="Theme.Transparent" 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">true</item>  
          <item name="android:backgroundDimEnabled">false</item>  
    </style>  

并在清单文件中

<activity android:name=".AlertActivity"
                    android:theme="@style/Theme.Transparent"/>

希望它对你有用。

答案 1 :(得分:0)

清单文件中的

   <activity           
        android:theme="@android:style/Theme.Translucent.NoTitleBar">
   </activity>

并在你的xml集中

 android:background="@android/transperent"

你也可以使用

android:alpha="0.50"