我们可以修改/定制我们的 BiometricPrompt
?
例如,现在我像这样使用 smth:
BiometricPrompt.Builder(AppResources.appContext)
.setTitle("title")
.setSubtitle("subTitle")
.setDescription("description")
.setNegativeButton("Cancel", AppResources.appContext?.mainExecutor,
DialogInterface.OnClickListener { dialogInterface, i -> biometricCallback.onAuthenticationCancelled() })
.build()
.authenticate(CancellationSignal(), AppResources.appContext?.mainExecutor,
BiometricCallbackV28(biometricCallback))
我是否有能力更改文本、标题、
negativeButton
的样式?颜色?
最佳答案
更新 2:beta01
alpha 版本的变化是指纹对话框使用 android.app.AlertDialog
而新的 beta01 使用 androidx.appcompat.app.AlertDialog
它具有私有(private)风格。
然后要覆盖该样式,我们必须覆盖 androidx.appcompat.R.attr.alertDialogTheme
引用我们的styles.xml,我们可以替换<item name="android:alertDialogTheme">@style/CustomAlertTheme</item>
通过 <item name="alertDialogTheme">@style/CustomAlertTheme</item>
在我的情况下,我只想更改按钮文本颜色,我只是添加了 <item name="buttonBarNegativeButtonStyle">@style/NegativeButtonStyle</item>
和正数相同,因为替换 alertDialogTheme
改变我不想做的其他事情。
我现在的styles.xml:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:textColor">@color/black</item>
<item name="android:buttonStyle">@style/WibleButtonStyle</item>
<item name="buttonBarNegativeButtonStyle">@style/NegativeButtonStyle</item>
</style>
<style name="NegativeButtonStyle" parent="Widget.AppCompat.Button.ButtonBar.AlertDialog">
<item name="android:textSize">16sp</item>
<item name="android:textColor">@color/dark_blue</item>
</style>
更新:beta01
这个技巧不再起作用了。如果我能找到另一种方法,我会尝试。
我找到了两种方法,这些都不是特定于 BiometricPrompt 的,一种是覆盖主题按钮样式:
<item name="android:buttonStyle">@style/CustomButtonStyle</item>
另一种选择是覆盖您的警报对话框主题:
应用主题风格
<item name="android:alertDialogTheme">@style/AlertDialogTheme</item>
<style name="AlertDialogTheme" parent="ThemeOverlay.AppCompat.Dialog.Alert">
<item name="android:buttonBarNegativeButtonStyle">@style/NegativeButtonStyle</item>
<item name="android:buttonBarPositiveButtonStyle">@style/PositiveButtonStyle</item>
</style>
<style name="NegativeButtonStyle" parent="Widget.AppCompat.Button.ButtonBar.AlertDialog">
<item name="android:textSize">10sp</item>
<item name="android:textColor">@color/primary_text</item>
</style>
<style name="PositiveButtonStyle" parent="Widget.AppCompat.Button.ButtonBar.AlertDialog">
<item name="android:textColor">@color/primary_text</item>
</style>
然后您可以将特定主题应用于特定 Activity 。也许他们可以打开 API 以允许样式,但我不得不更改颜色,因为无法看到按钮(一切都是白色的),这就是我发现解决问题的方法。我希望它对你有帮助。
关于android - 自定义 BiometricPrompt.Builder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52277622/