Кнопка скрытия мягкой клавиатуры Android

У меня есть простой вид входа, как показано ниже.

Если какой-либо EditText получает фокус, клавиатура будет отображаться (мягкая). Красная пунктирная линия должна описать это поведение:

Keyboard

Мне нужно, чтобы кнопки внизу (регистрация и помощь) были невидимы, пока отображается клавиатура. Нижний конец кнопки входа в систему должен быть над клавиатурой, так что видны как EditTexts и Login Button.

В лучшем случае половина логотипа должна быть видимой, если возможно (в зависимости от размера экрана)

Было бы прекрасно определить дополнительный макет xml, например, "клавиатура видна", если это возможно.

Ответ 1

1) ScrollView как родительский макет, чтобы он мог прокручиваться пользователем.

2) используя только adjustResize

3) Используйте программную клавиатуру show/hide event, чтобы иметь больше контроля. Вы можете установить видимость макета ниже кнопки входа в систему с помощью View.GONE, а клавиатура - visibe.

дополнительно:

Проверка Определение типа метода ввода. Следующие и Готовые действия для удобства пользователя

Ответ 2

Сделайте что-нибудь подобное. Здесь "андроид: имя" - ваша деятельность.

<activity
            android:name="com.example.tryitonjewelry.EnterStoreRegisterNew"
            android:label="@string/title_activity_enter_store_register_new"
            android:screenOrientation="portrait" 
            android:windowSoftInputMode="adjustPan">
            <intent-filter>
                <action android:name="android.intent.action.ENTERSTOREREGISTERNEW" />

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

Ответ 3

Вы можете управлять им несколькими шагами. Когда всплывающее окно KeyBoard выполняет следующие шаги или вы можете обернуть их в метод...

  1. Получите высоту окна.
  2. Определите высоту клавиатуры.
  3. Прокрутите свой вид над высотой клавиатуры, используя scrollTo().