Відповіді:
Ви запитуєте, як контролювати те, що видно, коли відкривається м'яка клавіатура? Можливо, ви захочете пограти з windowSoftInputMode . Докладніші відомості див. У документах розробників .
android:fitsSystemWindows="true"
у свій корінь, щоб вирішити цю проблему.
У мене були такі ж проблеми. Спробуйте наступний код:
android:windowSoftInputMode="adjustPan"
додайте його до свого manifest.xml у тег активності, що містить дані. приклад:
<activity
android:name=".Activities.InputsActivity"
...
android:windowSoftInputMode="adjustPan"
/>
adjustResize
було б, але воно також охоплює мої поля введення
У мене був той самий випуск, де програмна клавіатура знаходилася поверх переглядів 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>
Тут найважливішим значенням є prilagodResize. Це змістить весь інтерфейс вгору, щоб звільнити місце для клавішної клавіатури.
adjustResize|stateHidden
і це нічого не змінило adjustPan
.
Чому б не спробувати додати 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, але це залежить від вас. Крім того, встановлення стилю прокрутки для зовнішнього вкладу допомагає, принаймні, на моїх пристроях.
Все, що вам потрібно зробити - це
android:isScrollContainer="true"
джерело: http://www.davidwparker.com/2011/08/25/android-fixing-window-resize-and-scrolling/
Вибачте за відродження старої android:imeOptions="flagNoFullscreen"
теми, але в вашому елементі EditText ніхто не згадав налаштування
android:windowSoftInputMode="adjustPan"
android:isScrollContainer="true"
працює для android EditText, хоча він не працює для веб-перегляду або xwalkview. Коли м'яка клавіатура приховує вхід у веб-перегляді або xwalkview, який ви використовуєтеandroid:windowSoftInputMode="adjustResize"
Я вважаю, що ви можете зробити його прокруткою, використовуючи трекбол, що може бути досягнуто програмно методами вибору, але це лише ідея. Я знаю, що метод трекболу, як правило, працює, але що стосується точного способу зробити це і змусити його працювати з коду, я не впевнений.
Сподіваюся, що це допомагає.
додайте цей єдиний рядок до вашої відносної активності, де обкладинка клавіатури редагує text.inside onCreat () метод діяльності.
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
Якщо поле EditText охоплене клавіатурою, використовуйте наступний код:
EditText= findViewById(R.id.edittext)
EditText?.getParent()?.requestChildFocus(EditText,EditText)
Якщо ви хочете, щоб курсор знаходився у фокусованому редагуванні тексту, ніж використовувати EditText.requestFocus()
після цього, EditText?.getParent()?.requestChildFocus(EditText,EditText)
це допомагає отримати фокус і курсор у фокусованому редагуванні тексту.
Редагуйте свій AndroidManifest.xml
android:windowSoftInputMode="adjustResize"
Додайте це до перегляду кореня файлу "Макет".
android:fitsSystemWindows="true"
Це все.