我在我的应用中使用Firebase UI 4.0.1,该应用通过AuthUI.getInstance().createSignInIntentBuilder().setTheme(R.style.LoginTheme)
使用以下主题
<style name="Base" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/primaryColor</item>
<item name="colorPrimaryDark">@color/primaryDarkColor</item>
<item name="colorAccent">@color/secondaryColor</item>
<item name="android:windowBackground">@color/primaryColor</item>
</style>
<style name="Base.AppTheme">
<!-- Customize your theme here. -->
<item name="android:editTextStyle">@style/Yas_EditTextStyle</item>
<item name="editTextStyle">@style/Yas_EditTextStyle</item>
<item name="android:textColor">@color/primaryTextColor</item>
</style>
<style name="AppTheme" parent="Base.AppTheme">
<item name="android:windowTranslucentStatus">true</item>
</style>
<style name="LoginTheme" parent="@style/Base">
<item name="android:windowTranslucentStatus">true</item>
<item name="android:alertDialogStyle">@style/Login_AlertDialogStyle</item>
</style>
<style name="Login_AlertDialogStyle" parent="@style/AlertDialog.AppCompat.Light">
<item name="android:textColorAlertDialogListItem">@android:color/black</item>
<item name="android:textColor">@android:color/black</item>
</style>
请注意,primaryTextColor
是白色的。当我这样做时,一切看起来都很好,直到我打开了国家/地区代码选择器的警报对话框。在那里,我可以看到国家列表,但文字是白色背景上的白色。我正在尝试使该文本为黑色,但白色显示为白色。这是被称为对话框类的链接:https://github.com/firebase/FirebaseUI-Android/blob/master/auth/src/main/java/com/firebase/ui/auth/ui/phone/CountryListSpinner.java#L163
如何确保Firebase UI使用我的Login_AlertDialogStyle
?
答案 0 :(得分:0)
尝试将其添加到您的FirebaseUI主题:
<item name="android:alertDialogTheme">@style/Login_AlertDialogStyle</item>
您首先需要在styles.xml
中创建自定义FirebaseUI主题,该主题必须从FirebaseUI扩展。然后,您需要通过AuthUI构建器设置此样式:
Styles.xml
<style name="SignInTheme" parent="FirebaseUI">
<item name="android:alertDialogTheme">@style/Login_AlertDialogStyle</item>
<!-- Feel free to add anything else you want here -->
</style>
Activity.class
Intent firebaseAuth = AuthUI.getInstance()
.createSignInIntentBuilder()
.setTheme(R.style.SignInTheme) // set your sign in theme here
.setAvailableProviders(Arrays.asList(
new AuthUI.IdpConfig.PhoneBuilder().build(),
new AuthUI.IdpConfig.GoogleBuilder().build()))
.build();
有关自定义用户界面的更多信息,https://github.com/firebase/FirebaseUI-Android/blob/master/auth/README.md#ui-customization
答案 1 :(得分:0)
这是对我有用的代码
<style name="FirebaseUI.TextInputEditText">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:textColor">@android:color/white</item>
</style>