用activity来制作底部弹框分两步走:
第一步:设置activity透明;
第二步:设置activity切换动画;
代码如下:
第一步:
<activity android:name="c.CCBAActivity" android:theme="@style/Theme.Transparent"></activity>
也可以自定义透明背景需要背景透明,状态栏透明:
<style name="touming" parent="Theme.AppCompat.DayNight.NoActionBar"> <item name="android:windowIsTranslucent">true</item> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:windowNoTitle">true</item> <!-- 去除Activity顶部黑线 --> <item name="android:windowContentOverlay">@null</item> <!-- 系统状态栏背景设置透明 --> <item name="android:windowDrawsSystemBarBackgrounds">@android:color/transparent</item> </style>
但是这种有可能在某些版本上还有黑线,所以可以用如下风格:
<style name="toumingdialog" parent="Theme.AppCompat.Dialog"> <item name="windowActionBar">false</item> <item name="windowNoTitle">true</item> <item name="android:windowActionBar">false</item> <item name="android:windowFrame">@null</item> <!--边框--> <item name="android:windowIsFloating">true</item> <item name="android:windowNoTitle">true</item> <!--是否启用标题栏--> <item name="android:background">@android:color/transparent</item> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:backgroundDimEnabled">true</item> <item name="android:windowFullscreen">true</item> </style>
这种风格还要添加代码设置全屏:
Window window = getWindow(); WindowManager.LayoutParams layoutParams = window.getAttributes(); layoutParams.width = WindowManager.LayoutParams.MATCH_PARENT; layoutParams.height = WindowManager.LayoutParams.MATCH_PARENT; window.setAttributes(layoutParams);