У меня есть ListView, который использует SwipeRefreshLayout. оно работает. но я не всегда хочу, чтобы pull обновил анимацию или обратный вызов для запуска.Каков правильный способ отключения SwipeRefreshLayout pull для обновления
В моем случае действие pull to refresh синхронизирует представление с сервером, но синхронизация сервера может быть необязательно отключена в качестве предпочтения. когда синхронизация отключена, я не хочу, чтобы приведение к рефери было вообще.
Что в настоящее время делает подкласс SwipeRefreshLayout и переопределяет `canChildScrollUp ', чтобы« лежать », когда на самом деле это невозможно, но я не хочу анимации.
таким образом:
private class ListFragmentSwipeRefreshLayout extends SwipeRefreshLayout
{
public ListFragmentSwipeRefreshLayout(Context context) { super(context); }
@Override
public boolean canChildScrollUp()
{
final ListView view = getListView();
if (view.getVisibility() == View.VISIBLE)
return !shouldShowRefresh(view);
return false;
}
}
где реализация `shouldShowRefresh» считает ли он может, на самом деле, прокручивать в сочетании с моими настройками синхронизации сети.
Этот способ работы, но я задаю этот вопрос, потому что он звучит как общее требование, и объединение `canChildScrollUp 'довольно беспорядочно.
спасибо.
Почему вы просто не используете SwipeRefreshLayout, когда вы не хотите и используете обычный список в этом случае? разве это не так просто? – Nanoc
@Nanoc, 'setEnabled 'делает трюк, как показано ниже. Ваш подход был бы лучше, только если один или другой был необходим для жизни представления. как оказалось, я хочу изменить включение, пока представление активно. –