Пространство между клавиатурой и EditText в Android
Режим мягкого ввода "SOFT_INPUT_ADJUST_PAN"
, и когда отображается клавиатура, EditText
перемещается вверх, чтобы оставаться видимым, но дно клавиатуры и txt всегда склеиваются вместе, как видно на снимке экрана, я хочу, чтобы между ними было какое-то расстояние, возможно ли это
Также режим ввода должен оставаться как "SOFT_INPUT_ADJUST_PAN"
.
Извините, мой английский, спасибо в Advance...
![Screenshot:]()
Ответы
Ответ 1
Почему бы тебе не попробовать это?
android:windowSoftInputMode="adjustResize"
Я знаю, что вы хотите настроить панорамирование, но это также решит вашу проблему.
Поскольку вы действительно хотите остаться с AdjustPan, возможно, вы можете попробовать немного изменить дизайн XML-макета.
Вы также должны добавить требуемый отступ к самому внешнему элементу контейнера в файле макета.
Ответ 2
Помогите вам:
Если эта строка записана в вашем коде, удалите ее:
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
Edit:
Установите android: windowSoftInputMode в Activity to "adjustPan"
ИЛИ
Добавьте этот код в свой основной вид деятельности в setOnTouchListener()
вашего EditText
:
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_UNSPECIFIED);
Ответ 3
Я применил выше методы, которые работали для меня
Установите android: windowSoftInputMode в Activity для "adjustPan"
чем я добавил прокладку в edittext с гравитационным дном
и это работает как шарм.
Спасибо,
Ответ 4
Просто интересно, ваше приложение на весь экран? у него есть строка состояния? Если он пытается отключить полноэкранный режим и попытаться выяснить, разрешает ли это ваша проблема. Я помню, что об этом несколько лет назад была ошибка.
Ответ 5
Простое заполнение в редактируемом тексте не будет работать.
Используйте 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"
в вашем файле манифеста.
Ответ 6
попробуйте использовать GlobalLayoutListener:
приватный 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
}
})
Ответ 7
Если вам нужно расстояние между клавиатурой и EditText
, это можно легко сделать, просто добавив нижний отступ к EditText
:
<EditText
android:id="@+id/your_edit_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingBottom="10dp"/>