Timmy-zzh / TDialog

DialogFragment封装,高效实现各种弹窗效果

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

setCancelable(false)之后 下面的button也跟着 失效了 立即升级和稍后升级也用不了了

dubianjie opened this issue · comments

.setCancelable(false)之后 下面的button也跟着 失效了 立即升级和稍后升级也用不了了

commented

setCancelable()方法的功能就是设置弹窗是否可以取消,设置了false会将内部空间的点击事件屏蔽

commented

感谢提问,在代码中修改文字内容,可使用方法
setOnBindViewListener(new OnBindViewListener() {
@OverRide
public void bindView(BindViewHolder bindViewHolder) {
bindViewHolder.setText(R.id.tv_content, "abcdef");
bindViewHolder.setText(R.id.tv_title, "我是Title");
}
})

但是 这样的话 程序就死掉了啊 没有办法让dialog 小时 dissmiss 哎 又不能返回

commented

create()方法和show()方法都可以拿到TDialog的实例对象,
可以调用tDialog.dismiss()方法隐藏弹窗,具体可参考效果图第四种加载取消情况

setCancelable()方法的功能就是应该是设置针对返回键的,不应该是针对弹窗的一些自定义事件的(比如我需要定义一些其他动作,你这样写统统屏蔽了),个人认为这段代码设计不太合理了。

//控件点击事件处理
BindViewHolder viewHolder = new BindViewHolder(view, this);
if (tController.isCancelable() && tController.getIds() != null && tController.getIds().length > 0) {
for (int id : tController.getIds()) {
viewHolder.addOnClickListener(id);
}
}

如果setCancelable(false)之后, View内部控件的点击事件全部屏蔽, 返回键也跟着屏蔽, 然后程序就固定在此处, 我是想想不到这样的使用场景... 大佬泥这样设计的意图究竟何在啊?

commented

@mayangyang-github 大佬不更新,用着各种不顺手

希望大佬能把这种模式改成屏蔽dialog以外区域和返回键的点击事件,要不然dialog的按钮都点不了,这功能就很鸡肋啊!

commented

2.0版本已取消该方法,请升级使用