Android + Дооснащение: Наложение ProgressWheel не работает - PullRequest
0 голосов
/ 02 апреля 2020

У меня возникает проблема, когда я пытаюсь показать ProgressWheel (отсюда https://github.com/pnikosis/materialish-progress) в моем приложении.

В методе Confirm (), вызываемом сверху В меню я показываю макет, содержащий ProgressWheel, затем вызываю WS с помощью модификации с execute (должен быть синхронным) и fini sh, скрывая макет, когда я получил ответ (плюс другие вещи, такие как показ DialogFragment и т. д. * 1034). * ...).

Проблема в том, что все идет хорошо, когда я комментирую вызов WS. Если я вызываю его, то «зависает» до завершения вызова, а затем обновляет макет на короткое (очень короткое) время.

Вот код:

// onOptionsItemSelected

@Override
    public boolean onOptionsItemSelected(@NonNull MenuItem item) {
        switch (item.getItemId()) {
            case android.R.id.home:
                finish();
                return true;
            case R.id.confirmar:
                Confirm();
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }

// Подтверждение

private void Confirm() {

// Show the FrameLayout with the ProgressWheel
progress_overlay.setVisibility(View.VISIBLE);

...

// Prepare call and execute
resGrabacion = produccionRepository.grabarCuponEAN(tJsonCfg.toString(), tJsonParam.toString());
mensaje = resGrabacion.substring(3);

// Hide the FrameLayout
progress_overlay.setVisibility(View.GONE);

// Other stuff (show DialogFragment with the response.body(), take actions on the Activity, etc..)
}

// ProduccionRepository (метод grabarCuponEAN)

Call<String> call = gestinAlmacenService.grabarCuponEAN(gestinAlmacenRequest);

        try{
            Response<String> response = call.execute();
            if(response.isSuccessful()) {
                return response.body();
            }
            else{
                Toast.makeText(MyApp.getContext(),  MyApp.getContext().getResources().getString(R.string.titErrorEnviarDatos), Toast.LENGTH_SHORT).show();
            }
        } catch(IOException e) {
            Toast.makeText(MyApp.getContext(),  MyApp.getContext().getResources().getString(R.string.titErrorConexion), Toast.LENGTH_SHORT).show();
        }

        return null;

Аннотации:

  • Я могу ' сделать вызов асинхронным, потому что я должен открыть DialogFragment с результатом, поэтому я не могу получить SupportFragmentManager в классе репозитория.
  • Я попытался открыть сообщение с новым Runnable в шоу FrameLayout и скрыть, но тоже не сработало.
  • Почему репозиторий? Я следую рекомендациям Google (https://developer.android.com/jetpack/docs/guide)
...