Ответ 1
Привет, я проверил ваш код.
удалите строку ниже в AndroidManifest.xml "
android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
а затем проверьте, настройте размер экрана.
Если какой-либо запрос plz сообщит мне.
В моей деятельности есть android: windowSoftInputMode = "adjustResize" и ведет себя соответственно в Android 2.1:
Перед появлением мягкой клавиатуры
С клавиатурой
Однако в Honeycomb мягкая клавиатура не меняет размер моего макета, вместо этого она закрывает кнопки:
Такое же поведение на вкладке Galaxy 10 дюймов и Motorola Xoom.
Я несколько раз переделывал свой макет, пытаясь заставить его быть совместимым с Honeycomb, но безрезультатно. Мягкая клавиатура выдвинет вид EditText, но не кнопки.
Вот простой проект, демонстрирующий проблему.
Изменить. Ссылка исправлена.
Используемый макет:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:layout_alignParentBottom="true">
<Button
android:id="@+id/save"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Save" />
<Button
android:id="@+id/cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Cancel" />
</LinearLayout>
<ScrollView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true">
<EditText
android:layout_height="wrap_content"
android:layout_width="fill_parent" />
</ScrollView>
</RelativeLayout>
Единственная связанная с этим проблема - this, но отключение аппаратного ускорения не повлияло на меня. Я также прочитал руководство для Android о том, как ваше приложение совместимо с методами ввода, но не распознало какое-либо решение там.
Я делаю что-то явно неправильно? Или это ошибка, о которой у кого больше информации?
Привет, я проверил ваш код.
удалите строку ниже в AndroidManifest.xml "
android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
а затем проверьте, настройте размер экрана.
Если какой-либо запрос plz сообщит мне.
Режим adjustResize определенно работает; вы увидите это в действии во всем пользовательском интерфейсе.
Итак, вопрос: почему он не установлен для вашего приложения?
Во-первых, вы можете использовать "окно dumpsys оболочки adb", чтобы увидеть информацию о вашем окне, которая будет включать режим мягкого ввода, устанавливаемый его WindowManager.LayoutParams. Значение, напечатанное там, - это необработанное число; посмотрите здесь его значение: http://developer.android.com/reference/android/view/WindowManager.LayoutParams.html#SOFT_INPUT_ADJUST_NOTHING
Если ваше окно на самом деле не настроено, отредактируйте там, тогда вам нужно будет заглянуть и посмотреть, почему это не получается. Все остальное нормально, если вы установите этот режим в своей активности, он будет установлен в окне, как всегда. Вам нужно искать что-то еще, что вы делаете, что вызывает его изменение в вашем окне.
Если ваше окно имеет установленное значениеРазрешение, то по какой-то причине ваша иерархия просмотров фактически не изменяет размер. На платформе нет существенных различий, которые могут привести к тому, что это не сработает (и снова вы увидите, что он работает в другом месте в пользовательском интерфейсе). Первое, что я предлагаю сделать здесь, - это использовать HierarchyViewer для просмотра того, что происходит в иерархии вашего представления.
adjustResize завершится неудачно, когда ваша активность будет в полноэкранном режиме, как показано здесь: https://code.google.com/p/android/issues/detail?id=5497&can=1&q=honeycomb%20fullscreen&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars
Я нашел обходной путь, который работал у меня, вы можете попробовать: fooobar.com/info/16389/...
Приветствия