近期准备添加直播聊天室功能,因为水平有限只能用三方的,然后就用的 融云
整体设计如下:
输入框是在下面的,这时就出问题了,每次进页面的时候,输入框自动弹起,上网查阅资料说是几点获取问题,就在输入框EditText的布局中添加如下代码:
android:focusable="false"
android:focusableInTouchMode="false"
加了之后,再进入页面输入框不再弹起,但是又出问题了,点击下面的输入框不弹出了,没办法这个法子是不行了。
继续找,然后有人说是在其他控件获取焦点就行了,随及在输入框旁边的 发送 按钮的布局里面添加:
android:focusable="true"
android:focusableInTouchMode="true"
这样就可以了,执行之后一开始一进界面输入框不弹起还有点击也能弹出输入框了。看似已经没事了,但是后面还有坑呢。。。
这里加一个小插曲,我们的键盘设置就是自适应的 即在输入框弹出时是覆盖下面的
界面,如图所示:
这就需要在对应的AndroidManifest的配置文件下,设置对应的Activity的配置,添加代码如下:
android:windowSoftInputMode="adjustResize"
本着界面优化的原则,就设置总布局为白色,输入框所在的布局就不用设置背景颜色了,但是输入框弹出的时候,下面是键盘布局上面的布局就成了透明的背景了,所以又把总背景取消,输入框的背景单独设置为白色。
继续说坑。。。
产品要求这边点击 发送 按钮的时候,消息发出,输入框自动收回。
输入框收回的代码就不用我贴了吧,网上一大堆。
但是我这边点击的时候,第一次如下:
红框里面的字先消失,然后输入框才收回。
遂想到有可能是布局上面的添加获取焦点代码的问题:
然后将其原先添加的代码
android:focusable="true"
android:focusableInTouchMode="true"
去掉,加在输入框跟发送按钮的总布局RelativeLayout上,然后运行,效果如产品要求,点击发送按钮一次,输入框就自动收回了。
然后可以愉快的敲代码了,哈哈