我有一个应用程序,主题可以在三个不同的主题之间进行更改。我有两个应该具有透明背景的活动,看起来像是上一个活动之上的对话框。
我已经在堆栈上搜索了很多透明活动,其中大多数都有相同的芒果。具有一些属性的自定义主题,可为相关活动启用透明背景。
对我来说,问题是我需要在父活动上设置这个自定义透明主题,以实现任何透明度。如果我只在活动上设置透明主题,我想要透明,它将是一个坚实的背景。我已经尝试了我能想到的一切,但这一切归结为这一点,我不确定我做错了什么。
这是我的两个不同的父主题(缩小到必要部分):
<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向上导航到主要活动时的操作系统视图。
有什么想法吗?
答案 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"