【android】软键盘 - 仿 qq/微信 聊天界面布局

2

【android】软键盘 - 仿 qq/微信 聊天界面布局

软键盘 -仿 QQ/微信 聊天界面布局

导读

在 Android 开发中,软键盘的弹出通常会将部分布局顶出屏幕外,或者直接覆盖在屏幕上的效果,或让人觉得很突兀,或无法时时刻刻看到底部输入框的内容;这往往导致用户体验不佳。为了解决这个问题,我们需要设计一种能够像 QQ/微信 这样的人性化布局。

软键盘弹出前的准备工作

在开始设计之前,我们需要了解软键盘弹出的原理和特点。软键盘的弹出通常会将部分布局顶出屏幕外,或者直接覆盖在屏幕上的效果。这意味着我们需要预先考虑如何处理这些布局,以确保用户体验良好。

布局设计

为了实现像 QQ/微信 这样的布局,我们需要进行以下设计:

1. 底部输入框的固定位置:首先,我们需要将底部输入框固定在屏幕的底部,这样即使软键盘弹出,也不会覆盖输入框。

2. 上下滑动布局:其次,我们需要设计一个能够上下滑动的布局,以便用户可以看到整个界面。我们可以使用 ScrollView 或 RecyclerView 来实现这个功能。

3. 软键盘弹出的处理:当软键盘弹出时,我们需要处理好布局的显示和隐藏。我们可以使用 onWindowFocusChanged() 方法来检测软键盘的弹出状态,并根据此状态进行相应的布局调整。

布局代码示例

以下是布局代码示例:

```xml

android:layout_height="match_parent">

android:layout_width="match_parent"

android:layout_height="0dp"

android:layout_weight="1">

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:orientation="horizontal">

```

```javapublic class MainActivity extends AppCompatActivity {

private ScrollView scrollView;

private LinearLayout inputLayout;

@Override protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

scrollView = findViewById(R.id.scrollView);

inputLayout = findViewById(R.id.inputLayout);

// 处理软键盘弹出的事件 getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);

}

@Override public void onWindowFocusChanged(boolean hasFocus) {

super.onWindowFocusChanged(hasFocus);

if (hasFocus) {

// 当窗口获得焦点时,处理软键盘弹出的事件 handleSoftInput();

}

}

private void handleSoftInput() {

// 处理软键盘弹出的事件 int softInputHeight = getSoftInputHeight();

if (softInputHeight >0) {

// 当软键盘弹出时,调整布局的显示和隐藏 adjustLayout(softInputHeight);

}

}

private int getSoftInputHeight() {

// 获取软键盘的高度 return getWindowManager().getDefaultDisplay().getHeight();

}

private void adjustLayout(int softInputHeight) {

// 调整布局的显示和隐藏 if (softInputHeight >0) {

scrollView.setVisibility(View.GONE);

inputLayout.setVisibility(View.VISIBLE);

} else {

scrollView.setVisibility(View.VISIBLE);

inputLayout.setVisibility(View.GONE);

}

}

}

```

总结

通过以上设计和代码示例,我们可以实现像 QQ/微信 这样的布局,能够在软键盘弹出时调整布局的显示和隐藏,从而提供更好的用户体验。

聊天键盘android软键盘SoftInputqq微信聊天顶布局

版权声明:除非特别标注,否则均为网络文章,侵权请联系站长删除。

上一篇 导出微信聊天记录生成词云

下一篇 仿微信聊天框@功能