浅谈Dialog样式Activty
来源:互联网 发布:驾照金手指软件下载 编辑:程序博客网 时间:2024/06/08 15:31
一、应用场景
当需要使用弹窗时,可以选择AlertDialog或者将Activity设置成Dialog样式两种方式,都可以实现功能,但出于代码的优化和复用性。Dialog样式的Activity能够更好的封装
Intent in = new Intent(mContext,ShareActivity.class); in.putExtra("title","袭云踏雾 随云行远~"); in.putExtra("content", "我在云袭赚了好多积分,还有丰富的商品等我去领,推荐给你!\n" + "注册并填写我的邀请码:*******能立刻能兑现哦~\n");startActivity(in);
像这样直接传递要分享的内容就可以了
二、使用方式
1.首先需要自定义一个DialogStyle
<style name="MyDialogStyle" parent="android:style/Theme.Dialog"><item name="android:windowBackground">@android:color/transparent</item> 背景透明<item name="android:windowFrame">@null</item> 边框<item name="android:windowNoTitle">true</item> 无标题<item name="android:windowIsFloating">true</item> 浮在activity之上<item name="android:windowIsTranslucent">true</item><item name="android:windowContentOverlay">@null</item><item 动画样式name="android:windowAnimationStyle">@android:style/Animation.Dialog</item><item name="android:backgroundDimEnabled">true</item> 对话框外点击消失对话框<item name="android:windowCloseOnTouchOutside">true</item> </style>
2.设置好样式后,在清单文件中配置这个样式
<activity android:name=".activity.ShareActivity" android:screenOrientation="portrait" android:theme="@style/ShareDialog" ">
3.如果想设置弹进弹出的动画样式
<style name="dialog_animation" parent="@android:style/Animation.Dialog"> <item name="@android:windowEnterAnimation">@anim/dialog_enter</item> <item name="@android:windowExitAnimation">@anim/dialog_exit</item> </style>
这样就能把activity当成dialog显示了,但是会发现弹出的dialog据屏幕有一定间距,这是因为我们继承了
Theme.Dialog而父类中实现了 <item name="listPreferredItemPaddingLeft">10dip</item>
<item name="listPreferredItemPaddingRight">10dip</item>
<item name="listPreferredItemPaddingStart">10dip</item>
<item name="listPreferredItemPaddingEnd">10dip</item>
所以造成了布局有边距。
解决方案呢,就是在代码中设置间距覆盖掉原来布局
WindowManager windowManager = getWindowManager();Display defaultDisplay = windowManager.getDefaultDisplay();WindowManager.LayoutParams params = getWindow().getAttributes();params.width=(int)(defaultDisplay.getWidth()*1);getWindow().setAttributes(params);
这样就能很好的实现功能。
ps:还有一点需要注意的是,这设置Activity布局的时候,不要让布局填满整个页面,这样就造成了点击dialog空白处 而不能把dialog隐藏掉
0 0
- 浅谈Dialog样式Activty
- Dialog样式
- dialog 样式
- dialog样式
- Dialog样式
- Dialog样式
- 关于fragment和activty的通信个人的总结浅谈
- Android-自定义Dialog样式
- Android 自定义Dialog样式
- Activity变成Dialog样式
- Android dialog自定义样式
- 自定义dialog样式
- JFace Dialog 样式设置
- Dialog样式的Activity
- Android自定义Dialog样式
- 酷炫DIALOG样式
- Android dialog样式
- 自定义Dialog样式
- iOS内存优化常用方法
- springMVC实现多文件的上传
- Winodws删除目录失败--查找文件句柄没有关闭
- 为什么到北上广深
- QTcpSocket使用过程中的一些问题记录
- 浅谈Dialog样式Activty
- Java数组
- iOS中关于(null)和<null>的处理
- Java优雅代码--String容错处理 NullPointerException
- sublime安装html头部补全插件安装
- 构造方法
- JQAjax
- c++学习(四)——迭代器的介绍及使用
- Activity 的显式调用与隐式调用