Проблема с EditText внутри ScrollView, который скрывается с помощью InputKeyboard

#android #input #android-edittext #scrollview

#Android #ввод #android-edittext #scrollview

Вопрос:

Hej,

У меня есть EditText для пользователя, чтобы ввести его местоположение, и это находится в ScrollView. Когда пользователь нажимает внутри него, я хочу, чтобы scrollview прокручивался чуть ниже поля EditText, а также отображалась клавиатура.

Теперь я получаю :

EditText скрыт

Часть кода, которая задает scrollview, является :

         final int[] location = {0, 0};
    final int[] locationScroll = {0, 0};
                keywordsedittext.getLocationInWindow(location);
            mainScroll.getLocationInWindow(locationScroll);
                float px = Utils.pixelsFromDP(keywordsedittext.getPaddingTop(), PropertyMainMenuActivity.this);
            location[1] = (int) (location[1] - locationScroll[1] - px);
                mainScroll.smoothScrollTo(0, location[1]);
            ((LockableScrollView) mainScroll).setScrollingEnabled(false);

            keywordsedittext.setFocusable(true);
            keywordsedittext.requestFocusFromTouch();
            InputMethodManager lManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
            lManager.showSoftInput(keywordsedittext, 0);
  

Таким образом, в основном scrollview прокручивается до координаты высоты Y EditText (удалено верхнее заполнение).
Но когда код выполняется, область ввода текста EditText скрывается при вводе с клавиатуры.

Как мне следует решить эту проблему?

Ответ №1:

Используйте это в своем манифесте

 <activity android:windowSoftInputMode="adjustPan"> </activity>
  

Панель настройки перемещает содержимое страницы без изменения его размера

Для получения дополнительной информации https://developer.android.com/guide/topics/manifest/activity-element

Ответ №2:

Добавьте это в свой ScrollView xml:

 android:fillViewport="true"
  

Добавьте это в Manifest.xml

 android:windowSoftInputMode="adjustResize"
  

И у вас все должно получиться.