Есть два пути. Одним из них является то, что вы можете сохранить заполненный вид рециркулятора даже после перехода к другим фрагментам. Вы можете сделать это, установив ограничение экрана за пределами ViewPager
. Параметр Limit - это количество страниц, которые должны быть сохранены по обе стороны от текущей страницы в иерархии представлений в состоянии ожидания.
ViewPager.setOffscreenPageLimit(3) // in this case 3 fragments on either side of the current page will be retained.
Как вы сказали, это может занять много памяти.
Другим способом является размещение кода прокрутки в главном потоке, чтобы у вашего представления переработчика было достаточно времени для инициализации и заполнения элементов.
Выполните следующие действия после настройки данных в адаптере вида переработчика
recyclerView.post(new Runnable() {
@Override
public void run() {
// Call your scrolling code
recyclerView.smoothScrollToPosition(adapter.getItemCount() - 1);
}
});
. where_you_want_it.before(newRow)
или
newRow.insertBefore(where_you_want_it)
- MarkusQ
Вместо этого:
$("#mytable tbody").append(newRow);
Вы собираетесь хотеть сделать что-то вроде этого:
$("#id_of_existing_row").after(newRow);
var newRow = $("<tr>...</tr>");
$("#idOfRowToInsertAfter").after(newRow);
Ключ знает идентификатор строки, Вы хотите вставить новую строку после, или по крайней мере придумывающий некоторый селекторный синтаксис, который получит Вас та строка.
С:
var newTr = $('<tr>[...]</tr>');
Вы можете …
Вставьте его после (или прежде если Вы, так выберите), другая строка, для которой Вы знаете идентификатор (или безотносительно другого свойства):
$('#<id of the tr you want to insert the new row after>').after(newTr)
Вставьте его после конкретного индекса строки (индексы на основе 0, не на основе 1):
$($('table#<id> tr')[<index>]).after(newTr)
… или поскольку Вы упомянули, абсолютная середина возможна:
var existingTrs = $('table#<id> tr')
$(existingTrs[parseInt(existingTrs.length / 2)]).after(newTr)