У меня была та же проблема, но я переставляю кнопку с неопределенным ProgressBar, поэтому я посмотрел на источник ProgressBar , и они используют startAnimation()
и stopAnimation()
для неопределенного ProgressBar, но методыневидимы для Activity, поэтому используемый мной быстрый обходной путь - setVisibility(int)
, они запускают и останавливают анимацию в зависимости от состояния видимости ProgressBar, но ключ к этому заключается в том, что вы должны остановить анимацию перед изменением макетаи запустите его, когда вернется родительский макет ProgressBar ... наконец, я сделал следующее:
/**
* Replace a button with the specified view. The view will be set
* with the button layout parameters. Use {@link #revert(HeaderButton, View)}
* to rollback this operation
* @param button
* @param with
*/
public void replace(HeaderButton button, View with){
with.setVisibility(View.VISIBLE);
mHeaderView.replace(button, with);
}
/**
* Restores a button that was previously replaced
* @param button
* @param with
*/
public void revert(HeaderButton button, View with){
with.setVisibility(View.GONE);
mHeaderView.revert(button, with);
}
Переданный with
View в настоящее время является неопределенным ProgressBar, и кнопка заменяется на OnClick и возвращается, когдафоновый процесс завершается.
Надеюсь, это поможет