直播聊天室之 输入框 遇到的坑

作者: 被风扬起的沙 | 来源:发表于2016-09-07 11:17 被阅读766次

    近期准备添加直播聊天室功能,因为水平有限只能用三方的,然后就用的 融云

    整体设计如下:

    EC8DB2A4FF77A301E88661109A3B44B7.jpg

    输入框是在下面的,这时就出问题了,每次进页面的时候,输入框自动弹起,上网查阅资料说是几点获取问题,就在输入框EditText的布局中添加如下代码:

    android:focusable="false"
    android:focusableInTouchMode="false"
    

    加了之后,再进入页面输入框不再弹起,但是又出问题了,点击下面的输入框不弹出了,没办法这个法子是不行了。

    继续找,然后有人说是在其他控件获取焦点就行了,随及在输入框旁边的 发送 按钮的布局里面添加:

    android:focusable="true"
    android:focusableInTouchMode="true"
    

    这样就可以了,执行之后一开始一进界面输入框不弹起还有点击也能弹出输入框了。看似已经没事了,但是后面还有坑呢。。。

    这里加一个小插曲,我们的键盘设置就是自适应的 即在输入框弹出时是覆盖下面的
    界面,如图所示:

    B5C568FB4E380DA5CAEAE8D95F2C765E.jpg

    这就需要在对应的AndroidManifest的配置文件下,设置对应的Activity的配置,添加代码如下:

    android:windowSoftInputMode="adjustResize"
    

    本着界面优化的原则,就设置总布局为白色,输入框所在的布局就不用设置背景颜色了,但是输入框弹出的时候,下面是键盘布局上面的布局就成了透明的背景了,所以又把总背景取消,输入框的背景单独设置为白色。

    继续说坑。。。
    产品要求这边点击 发送 按钮的时候,消息发出,输入框自动收回。
    输入框收回的代码就不用我贴了吧,网上一大堆。
    但是我这边点击的时候,第一次如下:

    Paste_Image.png

    红框里面的字先消失,然后输入框才收回。

    遂想到有可能是布局上面的添加获取焦点代码的问题:
    然后将其原先添加的代码

    android:focusable="true"
    android:focusableInTouchMode="true"
    

    去掉,加在输入框跟发送按钮的总布局RelativeLayout上,然后运行,效果如产品要求,点击发送按钮一次,输入框就自动收回了。

    然后可以愉快的敲代码了,哈哈

    相关文章

      网友评论

        本文标题:直播聊天室之 输入框 遇到的坑

        本文链接:https://www.haomeiwen.com/subject/podjettx.html