Как автоматизировать сжатие файлов JavaScript с Компрессором YUI?

В качестве обходного пути для сохранения состояния 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
                    }
13
задан z-boss 22 October 2008 в 19:51
поделиться

5 ответов

Я мог бы пойти для make-файла (я думаю, что это, вероятно, было бы больше удобного в сопровождении длительного срока), но если Вы хотите quick-n-dirty пакетную команду Windows, что-то как следующее должно работать:

for %%a in (*.js) do @java -jar yuicompressor.jar "%%a" -o "deploy\%%a"
12
ответ дан 1 December 2019 в 20:44
поделиться

Если Вы приспособлены к Java, можно также использовать Муравья для преобразования. Я нашел запись в блоге о Муравье Taks для Компрессора YUI.Отказ от ответственности: Никогда не пробовал его - извините

5
ответ дан 1 December 2019 в 20:44
поделиться

Я должен упомянуть, что использование GNU Делает, у меня есть следующее правило:

%-min.js: %.js
    ${java} -jar ${compressor} $< -o ${<:.js=-min.js}
4
ответ дан 1 December 2019 в 20:44
поделиться

Вы должны будете использовать своего рода сценарий для получения списка всех .js файлов и затем выполняете Компрессор YUI на всех них. На командной строке окон что-то вроде этого должно работать:

FOR %f IN (*.js) DO java -jar yuicompressor.jar %f -o deploy\%f
1
ответ дан 1 December 2019 в 20:44
поделиться

И для Unix или cygwin можно использовать xargs или что-то как:

ls-1 *.js | awk '{printf ("Java - банка yuicompressor.jar %s-o развертываются / % s", 1$, 1$)}'

Канал, что к/bin/sh, когда Вы рады командной строкой выполнить его.

2
ответ дан 1 December 2019 в 20:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: