В моем приложении мне нужно создать большую форму с множеством элементов (обычно это элемент и атрибут label + (edditext, spinner, checkbox, ...)).Каков наилучший способ реализовать макет большой формы в Android?
Когда форма содержит больше элементов (> 20), приложение начинает отставать, открывая клавиатуру, например, занимает 1-2 секунды или прокрутка выполняется медленно.
То, что я пытался
В настоящее время каждый элемент надувается из XML (в LinearLayout с TextView и другого компонента) и добавляют для формирования макета. Я попытался «повторно использовать» (практически повторно добавить) элемент, но я получил и исключение, говоря, что у View уже есть родитель, который имеет смысл, поскольку я уже был добавлен в мой макет формы.
Я попытался добавить все элементы в ListView, чтобы убедиться, что представления повторно используются. Он работает, но не правдоподобно: проблема в этом случае заключается в том, что если у меня есть EditText, пользователь вводит какой-то текст и прокручивает в нижней части списка, я не мог найти способ сохранить текст из EditText, чтобы я будет добавлен обратно в EditText, когда элемент снова будет виден в ListView (пользователь перейдет обратно к моему элементу).
Вопрос
Знаете ли вы, как использовать много компонентов пользовательского интерфейса, но в то же время, чтобы сохранить хорошую производительность приложения? Как вы думаете, можно ли получить текст из EditText непосредственно перед тем, как пользователь начнет прокрутку?
спасибо.