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

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

整体设计如下:

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上,然后运行,效果如产品要求,点击发送按钮一次,输入框就自动收回了。

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,964评论 25 709
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,663评论 0 17
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,267评论 4 61
  • 最近在打一场几乎必败的战。 在做的事情并没有及时给出正的反馈,于是信心一点点受挫。作为一个易受影响的人,已经开始给...
    laserforce阅读 202评论 0 0
  • 写作是孤独的修炼,一个人走长长的,无人问津的路。 在最后,有人到达了盛世花园,有人却还走在林间小径。 一路上有很多...
    何子初阅读 491评论 2 4