Я пытаюсь реализовать FirebaseUI Auth с пользовательским макетом. По сути, я хочу показать Auth UI в представлении Dialog
i sh, показывая все параметры входа в Card
, оставшийся фон прозрачным.
Вот что я пробовал до сих пор:
// in styles
<style name="FirebaseAuthTheme" parent="FirebaseUI">
<item name="colorPrimaryDark">@android:color/transparent</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
<item name="android:backgroundDimEnabled">false</item>
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
</style>
// in code
startActivityForResult(AuthUI.getInstance()
.createSignInIntentBuilder()
.setAuthMethodPickerLayout(customLayout)
.setTheme(R.style.FirebaseAuthTheme)
.setIsSmartLockEnabled(!BuildConfig.DEBUG, true)
.setAvailableProviders(providers)
.build(), RC_SIGN_IN);
Пользовательский макет:
// I am aware that it lauches an activity, so make the root to cover entire screen with transparent background
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent">
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
... >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="vertical">
<Button
android:id="@+id/btnGoogleSignIn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Google" />
<Button
android:id="@+id/btnSignInFacebook"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Facebook" />
<TextView
android:id="@+id/textViewAuthTosAndPrivacy"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
</androidx.cardview.widget.CardView>
</RelativeLayout>
Несмотря ни на что, фон не будет прозрачным. Я подозреваю, что с моим макетом все в порядке, но Firebase каким-то образом устанавливает черный фон по умолчанию (я тоже вижу анимацию исчезновения). Могу ли я отключить этот черный фоновый слой? Как создать такой пользовательский интерфейс?
ОБНОВЛЕНИЕ: Я обнаружил снимок экрана в исходной проблеме FirebaseUI для настраиваемых представлений , показывающей аналогичный Я пытаюсь достичь. Но я не могу добраться туда, к сожалению.