xujiaji/HappyBubble

弹dialog会影响输入框输入,可有解决办法?

Selina592732122 opened this issue · 29 comments

如图,底部Edittext要输入内容,此时有弹框,edittext就会失去焦点,可有解决办法?
qq 20180816090440

你是说dialog弹出后,键盘收下去了?

是的,而且edittext失去焦点,因为dialog此时覆盖整个activity的,可有解决办法?

确实,这个好像不好办。我现在的思路是,你在列表上面覆盖一层布局。自己添加BubbleLayout,位置的处理逻辑你大概可以参照BubbleDialog。如果其他解决办法的话,你可以找找有没有关于dialog弹出后不让键盘消失的这类问题。因为BubbleDialog就是个直接继承Dialog的类

若用toast可行吗?

想法不错,因该可行!不过还是得自己计算位置

@Selina592732122 想了下我感觉直接覆盖一层布局上去也许会轻松很多

toast位置不好控制好像

这方面我不清楚,没涉及过toast的位置控制

image
相对而言你通过这些属性来控制,然后在父布局中调整位置还是很简单的,因为你的列表很有规则

我是怕到时候底层的列表滚动起来,就麻烦了

滚动肯定要隐藏呀!要不然对话框指着谁。。。

你的意思是在列表上一层,画固定12个BubbleLayout,然后代码去控制显示隐藏?

。。。 这也太夸张了,如果以你这个思路的话,建议你固定三个就行了。然后显示的时候,在这三个中对应位置显示哪个,然后调整BubbleLayouttopMargin移动到列表item的对应位置

好的,理解你意思了,一个BubbleLayout,代码去固定位置

是的,逻辑其实和DialogBubble里面的逻辑是一样的。只是一个是放在了Dialog,你现在要放在一个比如FrameLayout里面而已

我按照你的思路,位置会有偏差,大神能否给个demo?

你是不是没有减去距离顶部的高度?

是水平方向有问题,我把你param.x当成paddingLeft来设置,会出现部分文字显示在屏幕外,不懂为啥

那我试试吧

BubbleLayoutTest.zip
你看一下,大概这样计算,你还需要调整一下。
真尴尬,我看着那一大堆的计算数据我自己现在都有点蒙圈了。

好的,实在太感谢👍,我明天看看

qq 20180817091806
当布局在左边时,文字会被遮挡,是不是少算了啥?

我自己调了,多了些if判断,谢谢大神

是的,看你自己的情况判断就行。要点击隐藏,给FrameLayout加个点击事件隐藏就OK

测试一下,发现BubbleLayout的宽高必须在xml写死,不然会影响位置判断,如:layout_height=wrap_content,垂直方向有误差,因为我弹框的文字多少,会影响高度变化,代码中获取的高度可能是上一次的高度,本次高度好像获取不到;

可以设置值后,直接调用measure测量一下试试

你好,之前我用你的BubbleLayout,把它放在popupwindow,实现泡泡功能,但是发现点击到BubbleLayout的时候,报错如下,能有啥办法,在不去更改你的代码的情况下,避免这个错误?
qq 20180903180717

这是一个bug,忘记判断是否为null了。你现在可以通过setOnClickEdgeListener设置一个监听就可以了,或者等我晚上更新一下

好的,谢谢