当前位置:首页>汽车>正文

android聊天窗口怎么实现 聊天窗口在哪里

2023-05-20 16:01:00 互联网 未知 汽车

 android聊天窗口怎么实现 聊天窗口在哪里

android聊天窗口怎么实现


项目实现的关键:
1、要实现输入框的功能栏,同时要实现功能栏的切换和键盘弹出之间的顺滑过度,我们需要知道一个关键值,即键盘高度。
经过一番查阅,我们知道,键盘的弹出方式一般来说有两种,一种是顶起式,另一种是覆盖式。
顶起式:
android:windowSoftInputMode="stateAlwaysHidden|adjustPan"
覆盖式:
android:windowSoftInputMode="stateAlwaysHidden|adjustNothing"
我们选择通过顶起式来获取键盘高度,覆盖式来实现聊天界面的键盘弹出方式。
A 首先是键盘弹出的时机
顶起式弹出键盘,会动态改变布局,因此,我们可以通过View的布局监听接口,来监听布局是否发生变化,判断键盘已经弹起
view.getViewTreeObserver().addOnGlobalLayoutListener(listener)
然而,我们并不能判断,哪一个时刻,才是键盘已经完全弹起的时候。因此,我们选择另一种方式,在输入框文字即将输入的时候,获取键盘高度,这时候获取到的键盘高度是可靠的。通过查阅资料,我们知道EditText 通过TextChangedListener来监听文字输入,接下来,就是键盘高度的计算了。
B 键盘高度的计算
其实网上分享的键盘高度的计算,大多是通过键盘顶起前的视图高度和顶起后的视图高度的相减值来获取。
[java] view plain copy
private int getSupportSoftInputHeight() {
Rect r = new Rect()
this.getWindow().getDecorView().getWindowVisibleDisplayFrame(r)
int screenHeight = this.getWindow().getDecorView().getRootView().getHeight()
int softInputHeight = screenHeight - r.bottom
if (Build.VERSION.SDK_INT >= 18) {
// When SDK Level >= 18, the softInputHeight will contain the height of softButtonsBar (if has)
softInputHeight = softInputHeight - getSoftButtonsBarHeight()
}
return softInputHeight
}
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
private int getSoftButtonsBarHeight() {
DisplayMetrics metrics = new DisplayMetrics()
this.getWindowManager().getDefaultDisplay()
.getMetrics(metrics)
int usableHeight = metrics.heightPixels
this.getWindowManager().getDefaultDisplay().getRealMetrics(metrics)
int realHeight = metrics.heightPixels
if (realHeight > usableHeight) {
return realHeight - usableHeight
} else {
return 0
}
}

聊天窗口在哪里?

你好,你所说的聊天窗口是指什么软件的聊天窗口了

一般我们说的QQ或者是微信的这样的聊天窗口

就是指的你使用某软件与人聊天的时候你在与人互动,不管是语音还是文字的交互界面了

这个就是所说的聊天窗口了! 比如QQ上的你与人聊天的时候的对话框

最新文章