Я хочу иметь возможность прокручивать экран входа в систему, когда отображается клавиатура. Я не использую ScrollView, у меня есть только RelativeLayout с ImageView и еще одним LinearLayout внутри него. Я пробовал добавить то, что ниже, в AndroidManifest, но не сработало.
android:windowSoftInputMode = "adjustResize"
Я хочу, чтобы мой макет был прокручиваемым, только когда отображается клавиатура, а в покое не прокручивается
поместите все это в режим прокрутки и включите прокрутку только тогда, когда клавиатура активна / доступна, если вы не хотите, чтобы она была прокручиваемой в противном случае. Все это выполнимо, нужно погуглить.
Поместите корневой макет (относительный макет в вашем случае) внутрь scrollview (скажем, он называется scrollview1), и когда появится клавиатура, запустите следующий код:
scrollview1.post(new Runnable() {
@Override
public void run() {
scrollview1.fullScroll(View.FOCUS_UP);
}
});
Обновлено: обратите внимание, что у scrollviews может быть только один дочерний элемент, поэтому убедитесь в этом.
Если я помещаю свой RelativeLayout в ScrollView, он делает макет длиннее и прокручиваемым, а я этого не хочу. Я хочу, чтобы макет можно было прокручивать только при отображении клавиатуры.
В этом случае сохраните свой relative layout и используйте методы scrollTo() или scrollBy() для достижения желаемого.
Вот ссылки: developer.android.com/reference/android/view/…developer.android.com/reference/android/view/…
При добавлении активности в манифест добавить
<activity
android:name = ".Activities.InputsActivity"
...
android:windowSoftInputMode = "adjustPan"
/>
Вы хотите прокручивать, когда отображается клавиатура, или просто хотите, чтобы раскладка прокручивалась вверх, когда появляется клавиатура? Попробуйте "adjustPan" для второго.