2015-03-24 3 views
1

SwipeRefreshLayout имеет метод, называемый setProgressViewOffset, где вы можете установить начальный и конечный параметр:Получить значение по умолчанию для начала и конца в SwipeRefreshLayout

старт: смещение в пикселях от верхней части этой точки зрения, на которой прогресс должен появиться счетчик.

конец: смещение в пикселях от вершины этого вида, при котором ускоритель хода должен успокоиться после успешного жестового салфетки.

Полезно, когда у нас есть плавающая панель действий/панель инструментов и добавлен заголовок в наш ListView и вы хотите запустить SwipeRefresh снизу заголовка View.

Интересно, как я могу получить начальное и конечное значение по умолчанию?

Тогда, например, для параметра end, я могу передать значение по умолчанию end + actionBarSize в setProgressViewOffset.

+0

вы не можете просто пройти headerHeight + высота ActionBar в качестве конечного параметра? – Blackbelt

+0

headerHeight имеют тот же размер, что и высота панели действий. На самом деле это Framelayout с ListView и панелью инструментов. Таким образом, заголовок будет охватывать пространство под панелью инструментов. Конечно, я могу передать то, что вы предлагаете, но это не ответ на этот вопрос. – Ali

+0

Я использую то же самое, и он работает, не перекрывая два бара (actionbar + headerview). – Blackbelt

ответ

0

попробовать эти значения .. извлеченные из класса SwipeRefreshLayout

int DEFAULT_CIRCLE_TARGET = 64; 
final DisplayMetrics metrics = getResources().getDisplayMetrics(); 
swipeLayout.setProgressViewOffset(true,swipeContainer.getProgressCircleDiameter(),(int)(DEFAULT_CIRCLE_TARGET *metrics.density)); 
Смежные вопросы