Подтвердить что ты не робот

Пространство между клавиатурой и EditText в Android

Режим мягкого ввода "SOFT_INPUT_ADJUST_PAN", и когда отображается клавиатура, EditText перемещается вверх, чтобы оставаться видимым, но дно клавиатуры и txt всегда склеиваются вместе, как видно на снимке экрана, я хочу, чтобы между ними было какое-то расстояние, возможно ли это

Также режим ввода должен оставаться как "SOFT_INPUT_ADJUST_PAN".

Извините, мой английский, спасибо в Advance...

Screenshot:

4b9b3361

Ответ 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"/>