Есть ли способ сделать прокрутку экрана, чтобы можно было видеть текстовое поле?Защитная клавиатура для Android-клавиатуры edittext
ответ
Вы спрашиваете, как контролировать то, что видно, когда открывается мягкая клавиатура? Возможно, вы захотите сыграть с windowSoftInputMode. См. developer docs для более подробного обсуждения.
Я считаю, что вы можете сделать это прокруткой, используя трекбол, который в конечном итоге может быть достигнут программным путем с помощью методов выбора, но это всего лишь идея. Я знаю, что метод трекбола обычно работает, но что касается точного способа сделать это и заставить его работать с кодом, я не уверен.
Надеюсь, что помогает.
Что я думаю, мне нужно, чтобы сделать окно «искусственно» дольше, чтобы можно было прокручивать представление. В настоящее время RelativeLayout настроен на android: layout_width = "wrap_content" android: layout_height = "wrap_content" – Alexis
Тогда я не знаю решения. Возможно, вам захочется вручную настроить значения ширины и высоты в соответствии с вашими потребностями, растянув их дальше до того, что разрешает «wrap_content». –
Почему бы не попробовать добавить ScrollView, чтобы обернуть все, что вы хотите прокрутить. Вот как я это сделал, где я фактически оставляю заголовок сверху, который не прокручивается, а виджеты диалогового окна (в частности, EditTexts) прокручиваются при открытии программной клавиатуры.
<LinearLayout android:id="@+id/HeaderLayout" >
<!-- Here add a header or whatever will not be scrolled. -->
</LinearLayout>
<ScrollView android:id="@+id/MainForm" >
<!-- Here add your edittexts or whatever will scroll. -->
</ScrollView>
Обычно у меня есть LinearLayout внутри ScrollView, но это зависит от вас. Кроме того, настройка стиля полосы прокрутки на внешний интерфейс помогает, по крайней мере, на моих устройствах.
Хотя ответ Майры - это то, что каждый * должен * делать (и, вероятно, то, что Google думал, что все должны делать), это то, что я делаю почти каждый раз. единственный способ получить реальный контроль, необходимый для правильного отображения. Вздох. –
@zmilojko спасибо –
не стоит недооценивать комментарий Скотта. Это правда. в моем случае я не хотел изменять размер или панорамировать свой список, но хотел бы взять editText в конце этого списка. Итак, я поместил editText в scrollView и работает так, как ожидалось. – Darpan
У меня была такая же проблема, когда экранная клавиатура была поверх представлений EditText, которые были помещены в нижней части экрана. Я смог найти решение, добавив одну строку в соответствующую активность моего AndroidManifest.xml.
android:windowSoftInputMode="adjustResize|stateHidden"
Это как вся деятельность тег выглядит следующим образом:
<activity
android:name="com.my.MainActivity"
android:screenOrientation="portrait"
android:label="@string/title_activity_main"
android:windowSoftInputMode="adjustResize|stateHidden" >
</activity>
Здесь самое важное значение является adjustResize. Это сдвинет весь пользовательский интерфейс, чтобы дать место для экранной клавиатуры.
Но это может испортить внешний вид вашего html, если ваш css имеет в основном процентные значения –
Вы угадываете здесь или вы его попробовали? Кстати, это не должно испортить ваш html. Я пробовал с веб-просмотров. Это будет смещать весь взгляд не на отдельные элементы. – DanKodi
Я попробовал. Я думаю, что это происходит потому, что мой css имеет в основном процентные значения –
У меня были такие же проблемы. Попробуйте использовать следующий код:
android:windowSoftInputMode="adjustPan"
Добавьте его в свой манифест.xml в теге деятельности, в котором хранится ввод. Пример:
<activity
android:name=".Activities.InputsActivity"
...
android:windowSoftInputMode="adjustPan"
/>
Извините за возрождение старой нити, но никто не упомянул установки android:imeOptions="flagNoFullscreen"
в вашем элементе EditText
Все, что вам нужно сделать, это
android:isScrollContainer="true"
Источник: http://www.davidwparker.com/2011/08/25/android-fixing-window-resize-and-scrolling/
Хотя сам ответ мне не помог (атрибут не нужен), связанный источник содержит полное объяснение (форма должна быть встроена в ScrollView). Благодаря! – johndodo
Ссылка полезная. Спасибо –
Аналогично, ничего на странице не помогло мне, но ссылка показала добавление adjustResize к активности windosSoftInputMode, и это сработало. –
android:windowSoftInputMode="adjustPan"
android:isScrollContainer="true"
работает для android EditText, пока он не работает для веб-просмотра или x walkview. Когда мягкая клавиатура скрывает вход в webview или xwalkview, вы используете android:windowSoftInputMode="adjustResize"
Спасибо за ваш ответ. Его работа для меня. –
Лучший ответ, +1 для информации – VenomVendor
Это прекрасно работает, но убедитесь, что у вас есть- true
в вашем стиле диалога, если вы используете собственный стиль диалога. –
Не работает в пейзажном режиме? :( – usman