Skip to content

简单提示 PopTip

Kongzue edited this page Oct 24, 2020 · 23 revisions

简单提示 PopTip

简单提示 PopTip

提供一个类似 Toast 的文本提示功能,但它拥有更强大的自定义属性。你可以设置文本提示、图标、以及一个控制按钮,并可以设置持续显示或定义自动消失的时长。PopTip 是非阻断式提示,也就是说,在 PopTip 显示时用户依然可以操作界面。

显示一个简单 PopTip

使用以下代码显示一个 PopTip:

PopTip.show("这是一个提示");

显示一个带图标的 PopTip:

PopTip.show(R.mipmap.img_mail_line_white, "收到一封邮件");

显示一个带图标的 PopTip 并附带一个按钮:

PopTip.show(R.mipmap.img_mail_line_white, "邮件已发送", "撤回");

显示的图标可以选择是否染色根据亮色/暗色主题效果进行染色:

//关闭图标染色:
PopTip.show(R.mipmap.img_mail_line_white,"这是一个提示")
      .setAutoTintIconInLightOrDarkMode(false);

设置显示时长

PopTip 默认显示 2 秒后自动消失,若要手动调整,可以调用以下方法来设置显示时长:

//显示 2 秒
PopTip.show("这是一个提示").showShort();

//显示 3.5 秒
PopTip.show("这是一个提示").showLong();

//显示自定义 1 秒时长(单位:毫秒)
PopTip.show("这是一个提示").autoDismiss(1000);

不自动消失,持续显示:

PopTip.show("这是一个提示").noAutoDismiss();

手动关闭已显示的 PopTip:

PopTip tip = PopTip.show("这是一个提示").noAutoDismiss();
//手动关闭:
tip.dismiss();

按钮点击回调

按钮回调可以通过方法进行设置:

PopTip.show(R.mipmap.img_mail_line_white, "邮件已发送", "撤回").showLong().setButton(new OnDialogButtonClickListener<PopTip>() {
    @Override
    public boolean onClick(PopTip popTip, View v) {
        //点击“撤回”按钮回调
        return false;
    }
});

回调中有一个返回值,若return true 则可以点击后不自动关闭 PopTip。

另外,DialogX 还提供了多种设置回调和按钮文本的方法:

//只设置按钮文本
.setButton("按钮文本")

//只设置按钮点击回调
.setButton(new OnDialogButtonClickListener<PopTip>() {
    @Override
    public boolean onClick(PopTip popTip, View v) {
        toast("点击按钮");
        return false;
    }
});

//设置按钮文本并设置回调
.setButton("确定", new OnDialogButtonClickListener<PopTip>() {
    @Override
    public boolean onClick(PopTip popTip, View v) {
        toast("点击按钮");
        return false;
    }
});

//隐藏按钮
.setButton(null)

请依据个人喜好随意使用。

PopTip 点击回调

除了按钮可以设置点击回调外,也可以设置 PopTip 的提示的点击回调,但一旦开启提示点击,PopTip 的提示文字部分将不再可以点击穿透。

使用以下代码设置 PopTip 的点击回调:

PopTip.show("这是一个提示").setOnPopTipClickListener(new OnDialogButtonClickListener<PopTip>() {
    @Override
    public boolean onClick(PopTip baseDialog, View v) {
        //点击 PopTip
        return false;
    }
});

生命周期回调

想要监控对话框的生命周期,可以实现其 接口,建议使用build()方法构建对话框:

PopTip.build()
        .setDialogLifecycleCallback(new DialogLifecycleCallback<PopTip>() {
            @Override
            public void onShow(PopTip dialog) {
                //PopTip 启动时回调
            }
            @Override
            public void onDismiss(PopTip dialog) {
                //PopTip 关闭时回调
            }
        })
        .show();

自定义布局

要实现在对话框中加入自定义布局,请先准备好自定义布局文件,然后使用以下方法构建:

PopTip.build()
        .setCustomView(new OnBindView<PopTip>(R.layout.layout_custom_view) {
            @Override
            public void onBind(PopTip dialog, View v) {
                //v.findViewById(...)
            }
        })
        .show();

回调参数中,v 为您给定的布局文件的实例化组件,您可以通过 v.findViewById(resId)来实例化其他子布局组件,并在 onBind 方法中设置其功能和事件回调。

其他额外方法

//允许同时弹出多个 PopTip
DialogX.onlyOnePopTip = false;

//强制重新刷新界面
.refreshUI();

//关闭对话框
.dismiss();

//设置标题文字样式
.setTitleTextInfo(TextInfo);

//设置按钮文字样式
.setButtonTextInfo(TextInfo);

//设置提示文字样式
.setMessageTextInfo(TextInfo);

//获取对话框实例化对象,您可以通过此方法更深度的定制Dialog的功能
.getDialogImpl()

//获取自定义布局实例
.getCustomView()
    
//设置背景颜色,强行对对话框背景进行染色,请注意参数为int类型的颜色值而非R.color的索引
.setBackgroundColor(ColorInt);

额外组件

TextInfo

TextInfo 用于存储基础文本样式设置,其包含一系列属性和响应的 get/set 方法,例如方法解释如下:

属性 解释 默认值
fontSize 字号大小,值为-1时使用默认样式,单位:dp -1
gravity 对齐方式,值为-1时使用默认样式,取值可使用Gravity.CENTER等对齐方式 -1
fontColor 文字颜色,值为1时使用默认样式,取值可以用Color.rgb(r,g,b)等方式获取 1
bold 是否粗体 false
Clone this wiki locally