Как изменить стиль progerssbar в SwipeRefreshLayout?

Я использую SwipeRefreshLayout для обновления моего списка.

все работает. но мне не нравится индикатор выполнения. Он круглый. и несли стрелу, чтобы вращаться. Я видел примеры, в которых полоса движется от центра к краям. Как настроить стиль строки выполнения?

private SwipeRefreshLayout swipeLayout;
...
swipeLayout = (SwipeRefreshLayout) v.findViewById(R.id.swipe_guest_list);
        swipeLayout.setColorSchemeColors(Color.RED, Color.GREEN, Color.BLUE, Color.CYAN);
        swipeLayout.setOnRefreshListener(this);

пример Мне нужно и видео

Ответ 1

Вы не можете изменить анимацию.

В SwipeRefreshLayout вы не можете настроить многое; Я считаю, что это попытка Google заставить разработчиков придерживаться общих паттернов. То, что вы можете создать, это четыре цвета анимации, указанные с помощью setColorScheme().

SwipeRefreshLayout позаботится о том, чтобы показать свою предопределенную анимацию. Это может быть, когда canChildScrollUp() возвращает false, а пользователь "сбрасывает", или когда вы устанавливаете setRefreshing(true). Выключите анимацию с помощью setRefreshing(false). Поместите свою логику в метод onRefreshing() слушателя. Переопределите canChildScrollUp(), если вы поместите то, что не является ListView в SwipeRefreshLayout. Вы должны быть добры, чтобы идти отсюда.

Ответ 2

Фактически вы можете изменить его на более старый индикатор выполнения, нажав , указав ссылку в файл старше jar библиотеки поддержки-v4. У меня возникла такая же проблема после обновления eclipse, я просто скопировал старую версию v4jar для проектов в папку libs, а затем использовал свойства проекта, ссылаясь на эту поддержку-v4.jar, а затем очистил и построил проект, и теперь он использовал старый классы. Это решение подходит, если вы не используете ничего из обновленной библиотеки поддержки.

Ответ 3

Это мой пример

webframe = WebView

swipeContainer = swipeLayout

swipeContainer.setOnRefreshListener {
        webframe.reload()
        swipeContainer.isRefreshing = false
        swipeContainer.setColorSchemeColors(Color.WHITE)
        swipeContainer.setProgressBackgroundColorSchemeColor(Color.rgb(0,165,165))
    }