软输入模式为"SOFT_INPUT_ADJUST_PAN"
,当显示键盘时,EditText
向上移动以保持可见,但键盘和txt的底部始终粘在一起,如屏幕截图所示,我想在它们之间留出一些空间,有可能吗?
此外,输入模式必须保持为"SOFT_INPUT_ADJUST_PAN"
。
抱歉,我的英文,谢谢你...
答案 0 :(得分:3)
这可以帮到你:
如果您的代码中写入了这一行,请将其删除:
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
修改强>
将活动上的android:windowSoftInputMode设置为"adjustPan"
或强>
在setOnTouchListener()
的{{1}}中的主要活动中添加此代码:
EditText
答案 1 :(得分:3)
你为什么不尝试这个?
android:windowSoftInputMode="adjustResize"
我知道你想调整平底锅,但这也可以解决你的问题。
由于你真的想继续使用adjustPan,也许你可以尝试重新设计一下XML布局。
您还必须将所需的填充添加到布局文件中最外层的容器元素。
答案 2 :(得分:3)
我申请了以上对我有用的方法 将Activity上的android:windowSoftInputMode设置为“adjustPan” 我用重力底部将填充添加到edittext 它就像魅力一样。 谢谢,
答案 3 :(得分:1)
只是想知道,你的应用是全屏吗?它有状态栏吗?如果它尝试禁用全屏模式并尝试查看是否能解决您的问题。我记得前段时间有一个关于这个的错误。
答案 4 :(得分:1)
在编辑文本中使用简单的填充无效。
将drawable与以下编辑文本一起使用:
<?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"
在清单文件中。
答案 5 :(得分:0)
尝试使用use GlobalLayoutListener:
private var 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
}
})
答案 6 :(得分:0)
如果您需要在键盘和EditText
之间保持一段距离,只需在EditText
上添加填充底部即可轻松实现:
<EditText
android:id="@+id/your_edit_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingBottom="10dp"/>