android仿微信、QQ等聊天界面,实现点击输入框弹出软键盘、点击其他区域收起软键盘,默认滑动至最低端
实现Android聊天界面软键盘效果
在 Android 开发中,创建一个类似微信、QQ 等聊天界面的输入框时,我们需要实现点击输入框弹出软键盘、点击其他区域收起软键盘的功能。同时,为了让界面看起来更加友好,我们还需要将软键盘滑动至最低端。
第一步:创建布局文件
首先,我们需要在 `res/layout` 目录下创建一个名为 `chat_layout.xml` 的布局文件:
```xml
android:layout_height="match_parent" android:orientation="vertical"> android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="输入内容..." /> android:layout_height="wrap_content" android:orientation="horizontal"> android:layout_width="40dp" android:layout_height="40dp" android:src="@drawable/ic_add_photo" />
```
第二步:创建Activity
接下来,我们需要在 `MainActivity.java` 中实现点击输入框弹出软键盘、点击其他区域收起软键盘的功能。同时,我们还需要将软键盘滑动至最低端。
```javapublic class MainActivity extends AppCompatActivity {
private EditText etInput;
private ImageView ivImage;
private Button btnSend;
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.chat_layout);
etInput = findViewById(R.id.et_input);
ivImage = findViewById(R.id.iv_image);
btnSend = findViewById(R.id.btn_send);
// 点击输入框弹出软键盘 etInput.setOnTouchListener(new View.OnTouchListener() {
@Override public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
etInput.requestFocus();
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(etInput,0);
}
return false;
}
});
// 点击其他区域收起软键盘 findViewById(R.id.ll_root).setOnTouchListener(new View.OnTouchListener() {
@Override public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(etInput.getWindowToken(),0);
}
return false;
}
});
// 将软键盘滑动至最低端 etInput.setOnScrollListener(new AbsListView.OnScrollListener() {
@Override public void onScrollStateChanged(AbsListView view, int scrollState) {
}
@Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
if (firstVisibleItem + visibleItemCount >= totalItemCount) {
// 滚动到最后一项时,滑动软键盘至最低端 InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(etInput,0);
}
}
});
}
}
```
第三步:测试
最后,我们需要在 `AndroidManifest.xml` 中添加 `MainActivity` 的配置:
```xml android:windowSoftInputMode="adjustPan">
```
然后,运行应用程序并测试软键盘的效果。
以上就是实现Android聊天界面软键盘效果的步骤。
聊天键盘仿微信聊天界面android点击其他区域隐藏软键盘自动滑动至低端仿qq聊天