[英]I want to create a view above the soft keyboard
我正在开发一个Android软键盘。 我想在软键盘上方创建一个布局。 只要键盘在屏幕上显示,布局就必须可见。
通过查看此图像,您可以轻松理解我的想法。
如果您正在编写键盘,则非常简单。 只需重写onCreateInputView即可返回所需的视图。 这可以很容易地成为线性布局,并带有额外的视图和键盘本身。
我看到的最大问题是您那里有一个EditText。 那是行不通的。 轻按EditText将断开InputConnection与实际应用的连接,并导致...未知的怪异行为。 我什至不确定行为是否会在不同的OS版本中定义。 这可能会导致键盘立即隐藏。 这可能会导致键盘完全停止工作。 该操作系统并不适合于此。
就像Jawad Ahmend在评论中提到的那样,可以使用ConstraintLayout
将布局附加到键盘的底部,从而将布局附加到键盘的顶部。 您基本上需要执行以下步骤:
adjustResize
中的活动将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
库 。 将以下行添加到您应用的build.gradle中并进行同步。 implementation 'net.yslibrary.keyboardvisibilityevent:keyboardvisibilityevent:2.3.0'
KeyboardVisibilityEvent.setEventListener(this) { keyboardIsOpen -> layout_B.visibility = if (keyboardIsOpen) { View.VISIBLE } else { View.GONE } }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.