Skip to content

Android 仿IOS ActionSheet UI样式 ,通过纯代码实现 ,不用导入额外的图片 ,可定制化能力强

Notifications You must be signed in to change notification settings

xinle/IOSActionSheet

Repository files navigation

IOSActionSheet

License Download

Android 仿IOS ActionSheet UI样式 ,通过纯代码实现 ,不用导入额外的图片 ,可定制化能力强

Screenshot

使用

  • 方式 1
compile 'com.lelive:IOSActionSheet:#lastVersion#'
  • 方式 2. 拷贝Libs工程里面的IOSActionSheet 和style.xml到自己的工程里面

范例

  • 使用Builder方式创建
new IOSActionSheet.Builder(MainActivity.this)
        .otherButtonTitlesSimple("删除" ,"选择")
        .titleStr("确定删除?")
        .subTitleStr("删除后操作不能回退")
        .itemClickListener(new IOSActionSheet.IActionSheetListener() {
            @Override
            public void onActionSheetItemClick(IOSActionSheet actionSheet, int itemPosition, IOSActionSheet.ItemModel itemModel) {
                Toast.makeText(MainActivity.this, "点击的是第几项 = " + itemPosition, Toast.LENGTH_SHORT).show();
            }
        })
        .show();
  • 普通方式弹出
IOSActionSheet sheet = new IOSActionSheet(MainActivity.this);
sheet.setOtherButtonTitles(new ArrayList<IOSActionSheet.ItemModel>() {
    {
        add(new IOSActionSheet.ItemModel("删除" , IOSActionSheet.ItemModel.ITEM_TYPE_WARNING));
        add(new IOSActionSheet.ItemModel("选择"));
    }
});
sheet.setTitleStr("确定删除?");
sheet.setCanceledOnTouchOutside(false);
sheet.setItemClickListener(new IOSActionSheet.IActionSheetListener() {
    @Override
    public void onActionSheetItemClick(IOSActionSheet actionSheet, int itemPosition, IOSActionSheet.ItemModel itemModel) {
        Toast.makeText(MainActivity.this, "点击的是 == " + itemModel.getItemTitle(), Toast.LENGTH_SHORT).show();
    }
});
sheet.show();
  • 使用style改变样式
new IOSActionSheet.Builder(MainActivity.this)
    .styleId(R.style.IOSActionSheetStyleCustom)
    .otherButtonTitles(new ArrayList<IOSActionSheet.ItemModel>() {
        {
            add(new IOSActionSheet.ItemModel("删除", IOSActionSheet.ItemModel.ITEM_TYPE_WARNING));
            add(new IOSActionSheet.ItemModel("选择"));
        }
    })
    .cancleTitle("取消")
    .haveCancleBtn(true)
    .titleStr("确定删除?")
    .subTitleStr("删除后操作不能回退")
    .show();

样式文件(其中下面的样式可以不用写全,即希望修改什么就填什么)

<style name="IOSActionSheetStyleCustom">
    <item name="ias_background">@color/ias_background</item>
    <item name="ias_chooseBackground">@color/colorPrimaryDark</item>

    <item name="ias_titleTextColor">@color/ias_titleTextColor</item>
    <item name="ias_cancelButtonTextColor">@color/color1</item>
    <item name="ias_otherButtonTextColor">@color/color2</item>
    <item name="ias_warningButtonTextColor">@color/color4</item>
    <item name="ias_checkButtonTextColor">@color/ias_checkButtonTextColor</item>

    <item name="ias_titleTextSize">19sp</item>
    <item name="ias_subTitleTextSize">16sp</item>
    <item name="ias_cancleButtonTextSize">20sp</item>
    <item name="ias_otherButtonTextSize">12sp</item>
    <item name="ias_warningButtonTextSize">14sp</item>

    <item name="ias_lineHeight">70dp</item>
    <item name="ias_cancelButtonMarginTop">5dp</item>
    <item name="ias_radius">0dp</item>
    <item name="ias_padding">0dp</item>
</style>
  • 属性说明
Attribute 属性含义 默认值
ias_background 背景色 #D6FFFFFF
ias_chooseBackground 选中状态下的背景色 #D6DADADA
ias_titleTextColor 头部的文字颜色 #FF888888
ias_cancelButtonTextColor 取消按钮的颜色 #FF0000FF
ias_otherButtonTextColor 普通按钮的颜色 #FF0000FF
ias_warningButtonTextColor 警告按钮的颜色 #FFFF0000
ias_checkButtonTextColor 所有按钮选中状态下的颜色 #FFFFFFFF
ias_titleTextSize 头部文字的大小 16sp
ias_subTitleTextSize 二级头部文字的大小 14sp
ias_cancleButtonTextSize 取消按钮的文字大小 16sp
ias_otherButtonTextSize 普通按钮的文字大小 16sp
ias_warningButtonTextSize 警告文字的大小 16sp
ias_lineHeight 每个item的高度(头部title的高度最少是这个高度) 55dp
ias_cancelButtonMarginTop 取消按钮距离上部的margin 10dp
ias_radius 圆角半径 8dp
ias_padding 弹窗距离屏幕的padding 10dp

About

Android 仿IOS ActionSheet UI样式 ,通过纯代码实现 ,不用导入额外的图片 ,可定制化能力强

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages