abler98
@abler98
Software Engineer

Android. Как правильно реализовать смену контента на экране?

Сейчас для показа прогресса, блока ошибок и основного контента использую такой код:
private void showError(@Nullable String error, @Nullable View.OnClickListener buttonListener) {
        if (error != null) errorMessage.setText(error);
        errorButton.setOnClickListener(buttonListener);
        content.setVisibility(View.INVISIBLE);
        progressBar.setVisibility(View.INVISIBLE);
        errorBlock.setVisibility(View.VISIBLE);
    }

    private void showContent() {
        content.setVisibility(View.VISIBLE);
        progressBar.setVisibility(View.INVISIBLE);
        errorBlock.setVisibility(View.INVISIBLE);
    }

    private void showProgress() {
        content.setVisibility(View.INVISIBLE);
        progressBar.setVisibility(View.VISIBLE);
        errorBlock.setVisibility(View.INVISIBLE);
    }

Но что-то мне подсказывает, что так лучше не делать. Как обычно решается такая задача в "нормальных" приложениях?
  • Вопрос задан
  • 176 просмотров
Решения вопроса 2
@itdroid
Для Вашей задачи нет универсального и "правильного" решения, все зависит от UI и бизнес логики приложения. Для простых View, Ваше решение вполне рабочее. Единственное, можно использовать View.GONE вместо View.INVISIBLE, чтобы невидимые View не участвовали в процессе измерений контейнера.
Если у Вас сложный UI для errorBlock, допустим это форма отправки сообщения об ошибке по email или еще что-то этом роде, то можно подумать об отдельном фрагменте для errorBlock.
А так, просто не значит плохо!
Ответ написан
Комментировать
@Atllantis
Да всё так же.
Ещё, как вариант, можно на интерфейсах всё сделать.
Хотя вариантов много может быть. Всё зависит от приложения.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы