我正在开发Android软键盘。我想在软键盘上方创建一个布局。只要键盘在屏幕上显示,布局就必须可见。
通过查看此图像,您可以轻松理解我的想法。
答案 0 :(得分:0)
如果您正在编写键盘,则非常简单。只需重写onCreateInputView即可返回所需的视图。可以轻松地将其变成线性布局,并带有额外的视图和键盘本身。
我看到的更大的问题是您那里有一个EditText。那是行不通的。轻按EditText将断开InputConnection与实际应用的连接,并导致...未知的怪异行为。我什至不确定行为是否会在不同的OS版本中定义。这可能会导致键盘立即隐藏。这可能会导致键盘完全停止工作。操作系统不是为了这个目的。
答案 1 :(得分:0)
正如贾瓦德·阿门德(Jawad Ahmend)在评论中提到的那样,可以使用ConstraintLayout
将布局附加到键盘底部,从而将其附加到键盘顶部。您基本上需要执行以下步骤:
windowSoftInputMode
设置为adjustResize
。
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:windowSoftInputMode="adjustResize"
android:theme="@style/AppTheme.NoActionBar">
visibility
设置为不存在,并在其底部和父级底部之间添加一个布局约束。
<LinearLayout android:id="@+id/layout_B"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone">
KeyboardVisibilityEvent
library。将以下行添加到您应用的build.gradle中并进行同步。
implementation 'net.yslibrary.keyboardvisibilityevent:keyboardvisibilityevent:2.3.0'
KeyboardVisibilityEvent.setEventListener(this) { keyboardIsOpen ->
layout_B.visibility = if (keyboardIsOpen) {
View.VISIBLE
} else {
View.GONE
}
}