Android取消默认按钮颜色
时间: 2024-10-24 19:13:17 浏览: 26
在Android中,如果你想要取消默认按钮(例如:`AlertDialog`、`DialogFragment`或自定义的`Material Design`风格的`FloatingActionButton`)的颜色,你可以通过覆盖系统主题或者自定义视图样式来实现。以下是几个常见场景的做法:
1. 对于`AlertDialog`:
```xml
<style name="MyAlertDialogTheme" parent="Theme.MaterialComponents.Dialog.Alert">
<item name="android:buttonBarNeutralDrawable">@null</item>
<item name="android:buttonBarNegativeButtonDrawable">@null</item>
<item name="android:buttonBarPositiveButtonDrawable">@null</item>
</style>
```
然后在创建`AlertDialog`时指定这个主题:
```java
AlertDialog.Builder builder = new AlertDialog.Builder(context, R.style.MyAlertDialogTheme);
```
2. 对于`DialogFragment`:
在`onCreateDialog`方法中,创建一个无色的`AlertDialog.Builder`实例:
```java
AlertDialog dialog = new AlertDialog.Builder(getActivity(), R.style.ThemeOverlay_AppCompat_Dialog).create();
```
3. 自定义`FloatingActionButton`:
使用`AppCompatButton`替代默认的`Button`,并在样式中设置背景和边框颜色:
```xml
<style name="MyFabStyle" parent="Widget.AppCompat.Button.Borderless.Colored">
<item name="android:background">@android:drawable/selector_state_list</item>
</style>
```
在需要的地方应用这个样式:
```xml
<com.google.android.material.floatingactionbutton.FloatingActionButton
style="@style/MyFabStyle"
.../>
```
记得在你的应用程序的主题中引用这些自定义样式。
阅读全文