Tengo un reciclador que recibe información de una modificación. Quiero que la barra de progreso esté activa hasta el procesamiento completo de esta información. (Tal vez el tiempo de visibilidad de la barra de progreso u otra cosa)

Uso una barra de progreso personalizada: https://github.com/ybq/Android-SpinKit

public void retrofitView() {
    ProgressBar progressBar;
    progressBar = findViewById(R.id.ProgressBar_MainActivity);
    DoubleBounce doubleBounce = new DoubleBounce();
    progressBar.setIndeterminateDrawable(doubleBounce);
    progressBar.setVisibility(View.VISIBLE);
    Call<List<Restaurants>> call = RetrofitClient.apiService.getRestaurants();
    call.enqueue(new Callback<List<Restaurants>>() {
        @Override
        public void onResponse(Call<List<Restaurants>> call, Response<List<Restaurants>> response) {
            restaurantRecyclerInit(response.body());
        }

        @Override
        public void onFailure(Call<List<Restaurants>> call, Throwable t) {
            Toast.makeText(MainActivity.this, "ddd", Toast.LENGTH_SHORT).show();
        }
    });
}
3
loveubae 9 may. 2019 a las 13:51

3 respuestas

La mejor respuesta

Usar el siguiente código te ayudará

public void retrofitView() {
    ProgressBar progressBar;
    progressBar = findViewById(R.id.ProgressBar_MainActivity);
    DoubleBounce doubleBounce = new DoubleBounce();
    progressBar.setIndeterminateDrawable(doubleBounce);
    progressBar.setVisibility(View.VISIBLE);
    Call<List<Restaurants>> call = RetrofitClient.apiService.getRestaurants();
    call.enqueue(new Callback<List<Restaurants>>() {
        @Override
        public void onResponse(Call<List<Restaurants>> call, Response<List<Restaurants>> response) {
            progressBar.setVisibility(View.GONE); //This will make your progress bar visibility off after data load successfully
            restaurantRecyclerInit(response.body());
        }

        @Override
        public void onFailure(Call<List<Restaurants>> call, Throwable t) {
            progressBar.setVisibility(View.GONE); // Same here also
            Toast.makeText(MainActivity.this, "ddd", Toast.LENGTH_SHORT).show();
        }
    });
}
0
Ashish 9 may. 2019 a las 11:03

Simplemente configure progressBar.setVisibility(View.GONE); en onResponse y onFailure. No configure un temporizador ya que no sabe cuánto tiempo va a ser.

4
MONK 9 may. 2019 a las 10:59

Mejor use la clase AsyncTask y cargue su barra de progreso al comienzo del código y deténgalo en el método 'onPostExecute'. para obtener más detalles, consulte: https://developer.android.com/reference/android/os / AsyncTask

0
Adil Zama Sadiq 9 may. 2019 a las 10:57