透明活动:不起作用

时间:2014-02-03 04:26:56

标签: c# android xamarin.android

在我的应用程序标题栏中,我有一个图标。单击它会显示一个活动(透明)。

我在我的活动中尝试了以下代码。

AndroidManifest.xml

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android">
        <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="14" />
        <application 
            android:theme="@android:style/Theme.NoTitleBar">
            <activity 
                android:name=".Notifications" 
                android:theme="@android:style/Theme.Translucent.NoTitleBar">
                </activity>
        </application>
        <uses-permission android:name="android.permission.CAMERA" />

    </manifest>

活动布局

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="325dp"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="30dp"
        android:background="@drawable/notification_list_border"
        android:layout_height="300dp">
        <ListView
            android:id="@android:id/list"
            android:layout_height="fill_parent"
            android:layout_width="fill_parent"
            android:cacheColorHint="#00000000" />
    </LinearLayout>

notification_list_border.xml

    <?xml version="1.0" encoding="UTF-8" ?>
     <layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
        <item>
            <shape android:shape="rectangle" >
                <solid android:color="#CCCCCC" />

                <padding
                    android:bottom="3dp"
                    android:left="3dp"
                    android:right="3dp"
                    android:top="3dp" />

                <corners android:radius="5dp" />
            </shape>
        </item>
    </layer-list>

但我的活动背景仍然是黑色的。我在这做错了什么?

请帮忙, 感谢。

4 个答案:

答案 0 :(得分:2)

只需在Style.xml

中添加样式
<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>

此行显示在活动代码

 android:theme="@style/Theme.Transparent"

答案 1 :(得分:0)

试试这个 将以下内容添加到清单中的活动中。

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

并将您的行为设置为您的活动布局。

答案 2 :(得分:0)

我得到了它的工作:

我按如下方式更改了AndroidManifest.xml,

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android">
        <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="14" />
        <application 
            android:theme="@android:style/Theme.Translucent.NoTitleBar">
        </application>
        <uses-permission android:name="android.permission.CAMERA" />
    </manifest>

原因是,应用主题覆盖了活动主题

答案 3 :(得分:-1)

尝试这种风格

<style name="Invisible" parent="@android:style/Theme.Dialog">
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>

并在清单中使用此属性进行活动

android:theme="@style/Invisible"