使用 React Native FBSDK 在 Android 上禁用加载微调器

Disable Loading Spinner on Android Using React Native FBSDK

我正在使用 React Native FBSDK 在我的 React Native 应用程序中处理 Facebook 身份验证。我想使用我自己的加载微调器,但是 LoginManager.logInWithReadPermissions() 似乎已经包含一个加载微调器。有什么方法可以禁用它吗?

相关问题似乎涉及在 AndroidManifest 中的 activity 标签上设置 android:theme="@android:style/Theme.NoDisplay"。 React Native FBSDK 让我包括:

<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id" />

在 Android清单中。我认为将 android:theme 属性附加到此标记没有意义(我已经尝试过,但没有达到预期的结果)。

我尝试添加以下 activity 标签:

<activity android:name="com.facebook.FacebookAcitivity" android:theme="@android:style/Theme.NoDisplay" tools:replace="android:theme" />

到我的 Android Manifest,除了添加以下属性:

xmlns:tools="http://schemas.android.com/tools"

到我的 manifest 标签。这会导致应用程序在单击调用 LoginManager.logInWithReadPermissions().

的按钮时立即崩溃

当我 运行 adb logcat 时,堆栈跟踪中出现以下错误消息:

AndroidRuntime: java.lang.IllegalStateException: Activity {com.<my-company-name>.<my-project-name>/com.facebook.FacebookActivity} did not call finish() prior to onResume() completing

将我传递给 android:theme 的值更改为 @android:style/Theme.Translucent.NoTitleBar 可以防止我的应用程序崩溃。它还会更改加载图标的样式,但不会隐藏它。

这个问题发展到 变得适用的程度。

也就是说,在使用 react-native-fbsdk 时禁用 Facebook 的加载微调器:

  • xmlns:tools="http://schemas.android.com/tools" 添加到 AndroidManifest 中的 manifest 标签。
  • <activity android:name="com.facebook.FacebookAcitivity" android:theme="@style/FullyTranslucent" tools:replace="android:theme" /> 添加到 application 节点。
  • 将上述答案中指定的样式添加到/android/app/src/main/res/values/styles.xml