您的位置:首页 > 其它

AlertDialog两三事

2016-09-20 15:56 106 查看
AlertDialog为什么要Buider呢?直接构造如何不成功?

一:AlertDialog与AlertDialog.Builder

AlertDialog是Dialog的一个直接子类,最常用的对话框之一,注意不能直接用构造函数 AlertDialog alertDialog = new AlertDialog(mContent)来得到一个AlertDialog;

AlertDialog.Builder才是得到AlertDialog的唯一方式:AlertDialog.Builder alertDialog = new AlertDialog.Builder(this);

很多人会为了dialog出现后,点击空白处或者按返回键的控制处理烦恼,以下方法能很好地帮助到你:
二:AlertDialog.Builder的setCancelable
alertDialog.setCancelable(true/false);  //设置为false,按返回键不能退出,默认为true。

三:AlertDialog.Builder的setCanceledOnTouchOutside

alertDialog.setCanceledOnTouchOutside(true/false);  // 设置为false则dialog弹出后会点击屏幕,dialog不消失;点击物理返回键dialog消失。

PS:附送dialog从下慢慢上升进入及慢慢落下退出的动画效果实现代码:

dialog = new Dialog(context, R.style.ActionSheetDialogStyle);


<style name="ActionSheetDialogStyle" parent="@android:style/Theme.Dialog">
<!-- Dialog进入及退出动画 -->
<item name="android:windowAnimationStyle">@style/ActionSheetDialogAnimation</item>
</style>


<style name="ActionSheetDialogAnimation" parent="@android:style/Animation.Dialog">
<item name="android:windowEnterAnimation">@anim/actionsheet_dialog_in</item>
<item name="android:windowExitAnimation">@anim/actionsheet_dialog_out</item>
</style>

<!--actionsheet_dialog_in-->

<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="300"
android:fromYDelta="100%"
android:toYDelta="0" />
<!--actionsheet_dialog_out-->
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="300"
android:fromYDelta="0"
android:toYDelta="100%" />
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息