关闭

仿IOS ActionSheet控件从下弹出Dialog

96人阅读 评论(0) 收藏 举报
分类:

使Dialog从下弹出,无非就是控制控件弹出的初始位置和弹出后的位置,其步骤和重写Dialog类似,不过要重写Dialog的默认样式

   <style name="ActionSheet" parent="@android:style/Theme.Dialog">
        <item name="android:windowFrame">@null</item>
        <item name="android:windowIsFloating">true</item>
        <item name="android:windowIsTranslucent">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:windowAnimationStyle">@style/ActionSheetAnimation</item>
    </style>

添加弹出的动画效果

  <style name="ActionSheetAnimation" parent="@android:style/Animation.Dialog">
        <item name="android:windowEnterAnimation">@anim/push_up_in</item>
        <item name="android:windowExitAnimation">@anim/push_up_out</item>
    </style>

收起的动画效果

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="300"
    android:fromYDelta="100%p"
    android:toYDelta="0" />

弹出的动画效果

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="300"
    android:fromYDelta="0"
    android:toYDelta="100%p" />


然后加载自定义的布局,然后设置控件的初始位置,如下

	        
                final Dialog dialog = new Dialog(context, R.style.ActionSheet);
          View view = View.inflate(context, R.layout.actionsheet, null);
                Window w = dialog.getWindow();
		WindowManager.LayoutParams params = w.getAttributes();
		params.x = 0;
		params.y = 0;
		params.gravity = Gravity.BOTTOM;
		dialog.onWindowAttributesChanged(params);
		dialog.setCanceledOnTouchOutside(true);
               dialog.setContentView(view);
          dialog.show();

然后就可以在代码中使用了。

下载地址:

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:13138次
    • 积分:420
    • 等级:
    • 排名:千里之外
    • 原创:28篇
    • 转载:0篇
    • 译文:1篇
    • 评论:6条
    文章分类
    最新评论