Код: Выделить всё
{
"fields": [
{
"name": "fieldA",
"type": "STRING",
"minCharacters": 10,
"maxCharacters": 100
},
{
"name": "fieldB",
"type": "INTEGER",
"min": 10,
"max": 100
},
{
"name": "fieldC",
"type": "BOOLEAN_CHECKBOX",
"defaultValue": true
}
...
],
"name": "Form A"
}
Код: Выделить всё
//Add form title
linearLayout.addView(new TextView(form.name));
//Add form fields
for(Field field: form.fields) {
View view;
switch(field.type){
case STRING: view = new EditText();
...
}
view.setTag(field.id);
linearLayout.addView(view);
}
Чтобы избежать перегрузки потока пользовательского интерфейса, я подумал о двух возможных решениях:
- Использование RecyclerView.
- Использование Litho от Facebook.
- Хорош ли вариант использования Litho? Или достаточно использовать RecyclerView?
- А как насчет состояния моих представлений? Если я использую шаблон повторного использования, смогу ли я сохранить состояние каждого из моих полей (даже тех, которые находятся за пределами экрана) и, таким образом, смогу сохранить форму без потери данных?
- Если я использую шаблон повторного использования для отображения одной формы, как я буду обрабатывать несколько форм? Можем ли мы использовать вложенный RecyclerView? Формы должны отображаться одна за другой, как внутри вертикального RV, но если сами формы являются RV, как мне с этим справиться?
Заранее благодарю за ваше время.
Подробнее здесь: https://stackoverflow.com/questions/450 ... th-android
Мобильная версия