我创建了一个自定义主题,它看起来像一个弹出窗口,当点击任何图标时都会出现在"活动"主菜单上方,所以这个弹出窗口看起来应该是半透明的,以获得更好的外观。
基本上主题是有效的,但半透明性不行。主题本身不能是半透明的,因为我不希望弹出的"活动"填满整个屏幕。我使用的是包含LinearLayout的ScrollView。这种布局有页边空白,所以不会填满整个屏幕。但是这种布局的半透明性不起作用。它只是黑色的。为什么会这样?
主题:
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="Theme.Dialog" parent="android:Theme">
<item name="android:windowIsTranslucent">true</item>
<item name="android:background">@null</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
<item name="android:backgroundDimEnabled">true</item>
</style>
</resources>
弹出活动的xml:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/scrollView1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@null">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_margin="5dp"
android:background="#AA000000">
//...more content //
</LinearLayout>
</ScrollView>
我自己找到了答案。我需要在我的主题中添加另一个项目参数以使透明度发挥作用:
<item name="android:windowBackground">@android:color/transparent</item>