其实用dialog是最方便的,但组长说不想在一个Activity里写太多代码,原来的代码已经很乱了。。。没办法,前人留下的代码的确有点多,新加的只能在另外的Activity里写了,而且,它在这个弹窗里加的操作也太多了吧,有谁会在一个弹窗里又加列表,又加viewPager又加按钮的?咱也不敢说,咱也不敢问。业务逻辑这里就不写了,简单记录一下自己用Activity实现的弹窗效果吧。
其实大家都是窗口,写起来也没什么复杂的,我这就是在AndroidManifest里单独给这个Activity设了一个主题,话不多说,直接上代码
<style name="DialogActivityTheme" parent="Theme.AppCompat.Dialog">
<item name="windowNoTitle">true</item>
<item name="android:windowBackground">@color/true_transparent</item>
<!-- 悬浮会自动打开左右间隔,不方便实现点击空白关闭弹窗,所以设为false -->
<item name="android:windowIsFloating">false</item>
<!-- 半透明-->
<item name="android:windowIsTranslucent">true</item>
</style>
还有在布局文件里,外层整一个相对布局RelativieLayout,里面先铺一层透明的view,再写你自己的界面,要多少间隔就设多少间隔
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<View
android:id="@+id/vOutside"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<!-- 开始写你自己的布局-->
</RelativeLayout>
要实现点击消失的效果,就给vOutside这个版设一个点击事件,点击就退出Activity,方法简单粗暴,也没有考虑什么性能问题,好处就是可以整些花里胡哨的东西。
至于弹出效果,改一下跳转动画就好了
overridePendingTransition(0, R.anim.page_out);
没啥事还是建议用Dialog,官方都写好了,我们还造啥轮子呢。