Android仿IOS底部Dialog

前言

最近接到一个需求要实现一个类IOS的底部dialog,当时我就要日了狗了,项目上都固定了使用的是Android原生dialog,现在变成IOS的,得改多少代码。。不过既然人家提了,该实现还是要实现的对吧!!先上个图:


Sample.gif

实现方式

  1. 直接修改Android底层的dialog,加上宏控或者其他的标志位。当然作为一家手机ODM公司,这点还是可以做到的,但是没有公用性了。。
  2. 重新实现Dialog,我实现的AlerDialog,一是因为Google推荐使用,二是如果使用的是 DialogFragment也可以通过onCreateDialog的方式来重写

实现步骤

其实不想写这一步的,因为实现实在是太简单了一点,只不过要花一定的时间去做。。

  1. 截取Builder的方法,因为AlertDialog是通过Builder模式建立的,所以把一些Builder的方法改成自己的需求就行了
  2. 建立自己的底部的布局,我建立的是竖型LinearLayout
  3. 设置属性,其实设置自己需求的属性就可以了
  4. 创建Dialog,把布局设置进去,就大功告成了

使用方式

compile 'com.android.actionsheetdialog:actionsheet:1.0.3'
                ActionSheetDialog dialog = new ActionSheetDialog.ActionSheetBuilder(MainActivity.this, R.style.ActionSheetDialogBase_SampleStyle)
                        .setItems(new CharSequence[]{"Item1", "Item2", "Item3"}, new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                Toast.makeText(MainActivity.this, "onClick Item: " + which, Toast.LENGTH_SHORT).show();
                            }
                        })
                        .setMessage("************")
                        .setTitle("电话号码")
                        .setPositiveButton("确定", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                Toast.makeText(MainActivity.this, "onClick() dialog", Toast.LENGTH_SHORT).show();
                            }
                        })
                        .setCancelable(true)
                        .create();
                dialog.show();

源码

完整的源码在GitHub上
这里就不详细介绍了,稍微有点多,有问题可以提issue

你可能感兴趣的:(Android仿IOS底部Dialog)