Android几种弹窗的实现
来源:互联网 发布:所有网络命令 编辑:程序博客网 时间:2024/06/03 17:55
直接使用android sdk里面的Dialog以及子类AlertDialog,这种弹窗要求依赖Activity环境,如果传入的context不是activity就会报错,所以这种弹窗是和界面强相关的
使用系统弹窗:TYPE_SYSTEM_ALERT,而且要加权限:android.permission.SYSTEM_ALERT_WINDOW
AlertDialog.Builder dialog = new AlertDialog.Builder(context); dialog.setInverseBackgroundForced(false); dialog.setCancelable(true); AlertDialog systemDialog = dialog.create(); systemDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
这种弹窗不会依赖于app的activity界面,就算app退回到主界面,这种系统弹窗依然可以弹出来,但是由于是系统弹窗所以就跟系统有关,会有兼容性问题,例如我遇到的小米4c手机就默认不允许系统弹窗,要到设置里面去打开允许的开关才能弹出来,而且系统弹窗默认的外观都很难看,因此可通过getWindow().setContentView(View)来自定义弹窗的布局内容,这时候也有兼容性问题,还是小米4c,就算你允许了系统弹窗,系统弹窗谈出来了,但是弹窗里面自定义的按钮点击事件全部都无效。
3. 使用Activity来实现弹窗,采用这种方式我觉得是最好的方式,因为它就是一个activity,只不过是弹窗模式,配置文件里面可以这么配置:
<activity android:name=".view.setting.update.WifiAlertDialog" android:launchMode="singleTask" android:theme="@style/CustomDialog" /><style name="CustomDialog" parent="@android:style/Theme.Dialog"> <item name="android:windowFrame">@null</item> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:background">@drawable/land_popup</item> <item name="android:windowIsFloating">true</item> <item name="android:windowNoTitle">true</item> </style>
只需要startActivity就可以了,但是在startActivity的时候传进去的context如果不是activity类型,而且launchMode=”singleTask”那也会报错,不过可以通过设置flag来解决:intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
0 0
- Android几种弹窗的实现
- Android LsitView的实现
- android 监听的实现
- android mms的实现
- android 权限的实现
- Android放大镜的实现
- android菜单的实现
- Android放大镜的实现
- Android放大镜的实现
- android tab的实现
- android 通讯录的实现
- android图表的实现
- Android闹钟的实现!
- android 传感器的实现
- Android闹钟的实现!
- android 手电筒的实现
- Android SlidingMenu 的实现
- Android的OCR实现
- SpringMVC的API和Spring的官方说明文档的地址。
- Hbase配置安装
- 在Frame中对Graphics类的应用
- Unity 之 Light : Light Probe
- Git使用技巧大全和技巧
- Android几种弹窗的实现
- 日期判断是今天/明天/后天
- iOS之动态热修复技术JSPatch(一)
- 关于struts2 404 action找不到问题
- WinDgb命令 持续更新
- make 2>&1 | tee log.txt之小析
- Open vSwitch(OvS)源代码分析之工作流程(flow流表查询)
- 跟我一起写 Makefile
- STM32——I2C