#android #input #android-edittext #scrollview
#Android #ввод #android-edittext #scrollview
Вопрос:
Hej,
У меня есть EditText для пользователя, чтобы ввести его местоположение, и это находится в ScrollView. Когда пользователь нажимает внутри него, я хочу, чтобы scrollview прокручивался чуть ниже поля 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"
И у вас все должно получиться.