Как изменить стиль 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))
}