今天,我正在尝试安装新的材料组件,这是您需要更改应用程序的父级以从Theme.MaterialComponents继承。 我之所以这样做,是因为我想使用底部导航更好的波纹。但是之后,几乎所有应用程序中的按钮都变得更加膨松。
我应该怎么做才能恢复到先前的状态(右图)?
答案 0 :(得分:5)
在研究过程中,我找到了答案,我会把它留在这里,也许会对某人有所帮助。
之所以认为它们是因为它们使用了style="attr/buttonBarNegativeButtonStyle"
,而Material主题覆盖了它们
要解决此问题,您需要使用Bridge主题而不是Theme.MaterialComponents.Light
<style name="Theme.MyApp" parent="Theme.MaterialComponents.Light.Bridge">
<!-- ... -->
</style>
答案 1 :(得分:2)
在这里查看我的答案:https://stackoverflow.com/a/54416793/2342163
<style name="Theme.Custom.Material.Alert.Dialog.Light" parent="Theme.MaterialComponents.Light.Dialog.Alert">
<item name="materialButtonStyle">@style/Widget.AppCompat.Button.Borderless</item>
</style>
<style name="Theme.Custom.Material.Base.Light" parent="Theme.MaterialComponents.Light.NoActionBar">
<item name="android:dialogTheme">@style/Theme.Custom.Material.Alert.Dialog.Light</item>
<item name="android:alertDialogTheme">@style/Theme.Custom.Material.Alert.Dialog.Light</item>
....
</style>
答案 2 :(得分:1)
另一种方法是使用AndroidX AppCompat库中的AlertDialog
:
AlertDialog signInDialog = new AlertDialog.Builder(this)
.setMessage("Are you sure you want to log out?")
.setPositiveButton("OK", (dialogInterface, i) -> {
// TODO: Add your code here
})
.setNegativeButton("Cancel", (dialogInterface, i) -> {
// TODO: Add your code here
})
signInDialog.show();
答案 3 :(得分:0)
Solution
停止使用android.app.AlertDialog
并替换为androidx.appcompat.app.AlertDialog
,它将解决您的问题
You can use
<style name="AppTheme" parent="@style/Theme.MaterialComponents.Light.Bridge">
</style>
or
<style name="AppTheme" parent="@style/Theme.MaterialComponents.Light.NoActionBar.Bridge">
</style>
但是当您使用诸如ExtendedFloatingActionButton
,MaterialButton
之类的物质成分时,会引起您