Activity 使用 Theme.AppCompat 时不透明
Activity not transparent while using Theme.AppCompat
我已经尝试了很多方法来使 activity 或主布局透明,使用定义到 style.xml
中的主题,但主题中的不同属性仍然无效。
只有view.setalpha(0)
使布局或activity透明,但如何通过style.xml
。我正在使用 Theme.AppCompact
来支持较低版本的 Android 设备。
我也尝试了很多 SO 答案,但 none 其中一个有效。我做错了什么或那里有任何更正?到目前为止我所做的如下。
请帮我解决问题。
style.xml
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
<style name="Theme.AppCompat.Translucent" parent="AppTheme">
<item name="android:background">@android:color/transparent</item> <!-- Or any transparency or color you need -->
<item name="android:windowNoTitle">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:colorBackgroundCacheHint">@null</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:backgroundDimEnabled">true</item>
<item name="android:windowAnimationStyle">@android:style/Animation</item>
</style>
</resources>
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="demo.intel.com.serviceprogressbarnotification">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:theme="@style/Theme.AppCompat.Translucent">
</activity>
<activity android:name=".TestActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
好吧,我有同样的情况,但我想让我的 window 像对话框一样工作,并在它的背景上设置我需要的透明度级别。这是我使用的样式:
<style name="transparent_alertDialog" parent="Theme.AppCompat.Dialog.Alert">
<item name="windowNoTitle">true</item>
<item name="android:windowActionBar">false</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:backgroundDimAmount">0.95</item>
<item name="android:windowFullscreen">false</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowMinWidthMajor">50%</item>
<item name="android:windowMinWidthMinor">50%</item>
<item name="android:windowContentOverlay">@null</item>
<item
name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
<item name="android:windowCloseOnTouchOutside">false</item>
</style>
并且在清单中我使用了它:
<activity
android:name=".PaymentConfirmationActivity"
android:label=""
android:theme="@style/transparent_alertDialog"
android:windowSoftInputMode="adjustPan"/>
所以它对我有用。
希望它也会对你有所帮助。
我已经尝试了很多方法来使 activity 或主布局透明,使用定义到 style.xml
中的主题,但主题中的不同属性仍然无效。
只有view.setalpha(0)
使布局或activity透明,但如何通过style.xml
。我正在使用 Theme.AppCompact
来支持较低版本的 Android 设备。
我也尝试了很多 SO 答案,但 none 其中一个有效。我做错了什么或那里有任何更正?到目前为止我所做的如下。
请帮我解决问题。
style.xml
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
<style name="Theme.AppCompat.Translucent" parent="AppTheme">
<item name="android:background">@android:color/transparent</item> <!-- Or any transparency or color you need -->
<item name="android:windowNoTitle">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:colorBackgroundCacheHint">@null</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:backgroundDimEnabled">true</item>
<item name="android:windowAnimationStyle">@android:style/Animation</item>
</style>
</resources>
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="demo.intel.com.serviceprogressbarnotification">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:theme="@style/Theme.AppCompat.Translucent">
</activity>
<activity android:name=".TestActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
好吧,我有同样的情况,但我想让我的 window 像对话框一样工作,并在它的背景上设置我需要的透明度级别。这是我使用的样式:
<style name="transparent_alertDialog" parent="Theme.AppCompat.Dialog.Alert"> <item name="windowNoTitle">true</item> <item name="android:windowActionBar">false</item> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:backgroundDimAmount">0.95</item> <item name="android:windowFullscreen">false</item> <item name="android:windowIsFloating">true</item> <item name="android:windowMinWidthMajor">50%</item> <item name="android:windowMinWidthMinor">50%</item> <item name="android:windowContentOverlay">@null</item> <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item> <item name="android:windowCloseOnTouchOutside">false</item> </style>
并且在清单中我使用了它:
<activity
android:name=".PaymentConfirmationActivity"
android:label=""
android:theme="@style/transparent_alertDialog"
android:windowSoftInputMode="adjustPan"/>
所以它对我有用。 希望它也会对你有所帮助。