В качестве обходного пути для сохранения состояния RecyclerView
положение может быть сохранено в состоянии экземпляра.
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
if (contentRecyclerView != null)
when (feedType) {
MAIN.name, DISMISSED.name ->
outState.putParcelable(CONTENT_RECYCLER_VIEW_STATE,
contentRecyclerView.layoutManager!!.onSaveInstanceState())
SAVED.name ->
outState.putInt(CONTENT_RECYCLER_VIEW_POSITION,
(contentRecyclerView.layoutManager as LinearLayoutManager)
.findLastVisibleItemPosition())
}
}
override fun onViewStateRestored(savedInstanceState: Bundle?) {
super.onViewStateRestored(savedInstanceState)
if (savedInstanceState != null)
when (feedType) {
MAIN.name, DISMISSED.name -> savedRecyclerLayoutState = savedInstanceState.getParcelable(CONTENT_RECYCLER_VIEW_STATE)
SAVED.name -> savedRecyclerPosition = savedInstanceState.getInt(CONTENT_RECYCLER_VIEW_POSITION)
}
}
Чтобы убедиться, что сохраненный индекс не выходит за пределы, требуется проверка. Кроме того, поскольку элементы RecyclerView отклоняются, важно очистить сохраненную позицию индекса, чтобы RecyclerView не обновлялся после отклонения элемента, поскольку этот фрагмент кода содержится в [113 ] наблюдатель.
if (feedType == SAVED.name && savedRecyclerPosition != 0) {
val position: Int =
if (savedRecyclerPosition >= adapter.itemCount) adapter.itemCount - 1
else savedRecyclerPosition
contentRecyclerView.layoutManager?.scrollToPosition(position)
savedRecyclerPosition = 0
}
Я мог бы пойти для make-файла (я думаю, что это, вероятно, было бы больше удобного в сопровождении длительного срока), но если Вы хотите quick-n-dirty пакетную команду Windows, что-то как следующее должно работать:
for %%a in (*.js) do @java -jar yuicompressor.jar "%%a" -o "deploy\%%a"
Если Вы приспособлены к Java, можно также использовать Муравья для преобразования. Я нашел запись в блоге о Муравье Taks для Компрессора YUI.Отказ от ответственности: Никогда не пробовал его - извините
Я должен упомянуть, что использование GNU Делает, у меня есть следующее правило:
%-min.js: %.js
${java} -jar ${compressor} $< -o ${<:.js=-min.js}
Вы должны будете использовать своего рода сценарий для получения списка всех .js файлов и затем выполняете Компрессор YUI на всех них. На командной строке окон что-то вроде этого должно работать:
FOR %f IN (*.js) DO java -jar yuicompressor.jar %f -o deploy\%f
И для Unix или cygwin можно использовать xargs или что-то как:
ls-1 *.js | awk '{printf ("Java - банка yuicompressor.jar %s-o развертываются / % s", 1$, 1$)}'
Канал, что к/bin/sh, когда Вы рады командной строкой выполнить его.