软输入模式是"SOFT_INPUT_ADJUST_PAN"
,当显示键盘时,EditText
向上移动以保持可见,但键盘和 txt 的底部总是粘在一起,如截图所示,我想要它们之间的空间,可以吗?
输入模式也必须保持为"SOFT_INPUT_ADJUST_PAN"
.
对不起,我的英语,在此先感谢...
愿这对您有所帮助:
如果此行是在您的代码中编写的,则将其删除:
getWindow().setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
或者:
你不应该用明确的像素值设置你的layout_width
和。layout_heights
相反,请酌情使用wrap_parent
或fill_parent
。
或者:
如果您已将其设置minSdkVersion
为,3
则将其更改为minSdkVersion=4
编辑:
将Activity 上的android:windowSoftInputMode设置为"adjustPan"
或者:
将此代码添加到您的主要活动setOnTouchListener()
中EditText
:
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_UNSPECIFIED);
我应用了上述对我有用的方法是将 Activity 上的 android:windowSoftInputMode 设置为“adjustPan”,而不是我将填充添加到带有重力底部的编辑文本中,它就像魅力一样。谢谢,
你为什么不试试这个?
android:windowSoftInputMode="adjustResize"
我知道您想调整平移,但这也可以解决您的问题。
既然您真的想继续使用adjustPan,也许您可以尝试重新设计一下XML 布局。
您还必须将所需的填充添加到布局文件中最外层的容器元素。
编辑文本中的简单填充将不起作用。
将可绘制与您的编辑文本一起使用,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:bottom="8dp"
android:left="8dp"
android:right="8dp"
android:top="8dp">
<shape android:shape="rectangle">
<corners android:radius="10dp" />
<stroke
android:width="1dp"
android:color="@color/white" />
<solid android:color="@color/transparent" />
</shape>
</item>
</layer-list>
然后使用
android:windowSoftInputMode="adjustPan"
在您的清单文件中。
只是想知道,您的应用程序是全屏的吗?有状态栏吗?如果是尝试禁用全屏模式并尝试查看是否可以解决您的问题。我记得前段时间有一个关于这个的错误。
尝试使用GlobalLayoutListener:
私有变量 focusView:View?=null
// Register global layout listener.
decorView?.viewTreeObserver?.addOnGlobalLayoutListener(object : ViewTreeObserver.OnGlobalLayoutListener {
private val windowVisibleDisplayFrame = Rect()
private var lastVisibleDecorViewHeight: Int = 0
override fun onGlobalLayout() {
// Retrieve visible rectangle inside window.
decorView.getWindowVisibleDisplayFrame(windowVisibleDisplayFrame)
val visibleDecorViewHeight = windowVisibleDisplayFrame.height()
// Decide whether keyboard is visible from changing decor view height.
if (lastVisibleDecorViewHeight != 0) {
if (lastVisibleDecorViewHeight > visibleDecorViewHeight + MIN_KEYBOARD_HEIGHT_PX) {
// Calculate current keyboard height (this includes also navigation bar height when in fullscreen mode).
val currentKeyboardHeight = decorView.height - windowVisibleDisplayFrame.bottom
//keyboardHeight = currentKeyboardHeight
focusView = activity?.currentFocus
focusView.setPadding(0, 0, 0, SET_BOTTOM_PADDING_SPACE) // <---set space here
} else if (lastVisibleDecorViewHeight + MIN_KEYBOARD_HEIGHT_PX < visibleDecorViewHeight) {
focusView.setPadding(0, 0, 0, 0)
}
}
// Save current decor view height for the next call.
lastVisibleDecorViewHeight = visibleDecorViewHeight
}
})