Android: Cómo ocultar el círculo de progreso en Facebook login

Estoy utilizando este método para realizar un inicio de sesión de Facebook sin utilizar el botón fb Autenticación de Facebook sin botón de inicio de sesión

Está funcionando bien, pero una barra de progreso con fondo negro se muestra durante el inicio de sesión fb, supongo que de la actividad com.facebook.LoginActivity

¿Cómo puedo evitar que se muestre esa actividad ?, solo quiero mostrar mi propio progreso desde mi actividad de la aplicación durante el inicio de sesión en com.facebook.LoginActivity

Tuve el mismo problema con Facebook sdk 4.x. Cuando hago clic en el botón de inicio de sesión de Facebook, la actividad de Facebook aparece translúcida pero muestra una barra de progreso. Por suerte podemos desactivar esta barra de progreso en el tema. Así que la Actividad de Facebook se declara como

<activity android:name="com.facebook.FacebookActivity" android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation" android:label="@string/app_name" android:theme="@android:style/Theme.Translucent.NoTitleBar" /> 

Todo lo que tenemos que hacer es crear un estilo que hereda de Theme.Translucent.NoTitleBar y oculta la barra de progreso:

 <style name="FullyTranslucent" parent="android:Theme.Translucent.NoTitleBar"> <item name="android:progressBarStyle">@style/InvisibleProgress</item> </style> <style name="InvisibleProgress"> <item name="android:visibility">gone</item> </style> 

Ahora ponga el tema de la actividad a nuestro nuevo tema:

 <activity android:name="com.facebook.FacebookActivity" android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation" android:label="@string/app_name" android:theme="@style/FullyTranslucent" /> 

Voila! El ProgressBar antes de inicio de sesión se ha ido.

Para mejorar la excelente respuesta de @ VM4, modifiqué su enfoque para que funcione correctamente con SDK versión 4.12.0

En primer lugar, agregué lo siguiente a AndroidManifest.xml

  <activity xmlns:tools="http://schemas.android.com/tools" android:name="com.facebook.FacebookActivity" android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation" android:label="@string/app_name" android:theme="@style/Translucent" tools:replace="android:theme"/> 

En Android Studio 2.2, es probable que Manifest Merging produzca un error al quejarse de que el android:theme no se puede sobreescribir ya que ya existe. Esto se puede resolver usando las tools:replace="android:theme" en la etiqueta <activity> .

/res/values/styles.xml un estilo personalizado dentro de /res/values/styles.xml

  <style name="Translucent" parent="Translucent.Base"/> <style name="Translucent.Base" parent="android:Theme.Translucent.NoTitleBar"> <item name="android:progressBarStyle">@style/InvisibleProgress</item> </style> 

Esto eliminó correctamente el horrible diálogo de progreso de Facebook.

Sin embargo, en los dispositivos 5.0 (API 21) + esto tuvo el efecto secundario de colorear la parte superior de la barra de sistema más negro para el momento en que la actividad de FacebookActivity estaba activa.

Para corregir esto, agregué un estilo en res/values-v21/styles.xml

 <style name="Translucent" parent="Translucent.Base"> <item name="windowActionBar">false</item> <item name="windowNoTitle">true</item> <item name="android:windowDrawsSystemBarBackgrounds">true</item> <item name="android:statusBarColor">@android:color/transparent</item> </style> 

Esto hizo que el tema fuera completamente transparente y eliminó el diálogo de progreso.

Por último, una cosa a tener en cuenta con las soluciones que recomiendan usar @android:style/Theme.NoDisplay es que esto no funcionará en Android Marshmallow 6.0 (API 23) + y probablemente debería evitarse en el futuro.

  <activity android:name="com.facebook.FacebookActivity" android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation" android:label="@string/app_name" android:theme="@style/FullyTranslucent" tools:replace="android:theme"/>` <style name="FullyTranslucent" parent="android:Theme.Translucent.NoTitleBar"> <item name="android:progressBarStyle">@style/InvisibleProgress</item> </style> <style name="InvisibleProgress"> <item name="android:visibility">gone</item> </style> 

Simple solución sólo muestra la barra de progreso en registercallback

Ver mi código

 fb_login.registerCallback(callbackManager, new FacebookCallback<LoginResult>() { @Override public void onSuccess(LoginResult loginResult) { progressBar.setVisibility(View.VISIBLE); // App code GraphRequest request = GraphRequest.newMeRequest( loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() { @Override public void onCompleted( JSONObject object, GraphResponse response) { // Application code Log.v("Profile --------- ", response.toString()); progressBar.setVisibility(View.GONE); try { if (object!=null){ F_ID = object.getString("id"); if (object.has("first_name")) Name = object.getString("name"); Log.d(TAG, "onCompleted: Name - "+object.getString("name")); if (object.has("last_name")) LastName = object.optString("last_name"); Log.d(TAG, "onCompleted: LastName - "+object.optString("last_name")); if (object.has("email")) Email = object.optString("email"); if (object.has("birthday")) DOB = object.optString("birthday"); ProfilePic = "https://graph.facebook.com/" + F_ID + "/picture?type=large"; Toast.makeText(getApplicationContext(), "Login Successful!", Toast.LENGTH_LONG).show(); Intent intent = new Intent(getApplicationContext(), MainActivity.class); intent.putExtra("Name", object.getString("name")); intent.putExtra("Email", Email); intent.putExtra("DOB", DOB); intent.putExtra("ID", F_ID); intent.putExtra("ImgURL", ProfilePic); Log.d(TAG, "onCompleted: Email = "+Email+" Name = "+Name+" FID = "+F_ID); //sharedpreference is used to store the email, password and the useername SharedPreferenceManager.setDefaults("email", Email, SigninActivity.this); SharedPreferenceManager.setDefaults("facebook_id", F_ID, SigninActivity.this); SharedPreferenceManager.setDefaults("profile_pic", "https://graph.facebook.com/" + F_ID + "/picture?type=large", SigninActivity.this); if (object.has("name")) SharedPreferenceManager.setDefaults("username", Name, SigninActivity.this); Log.d(TAG, "onCompleted: Store shared data"); startActivity(intent); }else Log.d(TAG, "onCompleted: object is null "+object); } catch (JSONException e) { e.printStackTrace(); } } }); Bundle parameters = new Bundle(); parameters.putString("fields", "id,name,email,gender, birthday"); request.setParameters(parameters); request.executeAsync(); System.out.println("Facebook Login Successful!"); System.out.println("Logged in user Details : "); System.out.println("--------------------------"); System.out.println("User ID : " + loginResult.getAccessToken().getUserId()); System.out.println("Authentication Token : " + loginResult.getAccessToken().getToken()); } @Override public void onCancel() { Toast.makeText(getApplicationContext(), "Login cancelled by user!", Toast.LENGTH_LONG).show(); System.out.println("Facebook Login Cancel!!"); } @Override public void onError(FacebookException e) { Toast.makeText(getApplicationContext(), "Something went wrong!!", Toast.LENGTH_LONG).show(); System.out.println("Facebook Login failed!! because of " + e.getCause().toString()); } }); 
  • Obtener el feed de la página de la página pública de Facebook Android
  • Visualización de la imagen del perfil FB en vista de imagen circular en la aplicación
  • Facebook FriendPicker no se muestra (Facebook Android SDK Tutorial "Show Friends" no están actualizados)
  • Cómo analizar la siguiente página de Facebook (SDK 4.0) ¿Respuesta gráfica en android?
  • Facebook share - Textos que faltan
  • Publicar en los amigos del usuario la pared de facebook a través de la aplicación Android
  • ¿Cuál es la nueva implementación del diálogo de solicitudes de aplicaciones en Android Facebook SDK 4.0.1
  • El uso de Facebook SDK en Android da "Usuario conectado como usuario de Facebook diferente." Error
  • Marcador de Facebook Las llamadas de la API de Android no muestran puntuaciones altas en Timeline / ticker
  • Problemas al crear historiales de Open Graph: "no se puede generar la historia" y "no se genera la vista previa"
  • Falta el mensaje o error de adjunto al enviar el mensaje en Facebook
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.