How to style buttons in Alert Dialog Fragment usin

2019-06-22 11:56发布

I'd like to change the default button styling on an alert dialog.

The standard Alert Dialog Fragment (in Android L) looks like this:

Default Alert Dialog Fragment

I'd like the right button to be styled as a normal button instead of a borderless button. Google itself seems to use this pattern in various dialogs, such as:

Dialog without borderless button

Does anyone know if this is possible, without recreating the whole dialog from scratch?

3条回答
Summer. ? 凉城
2楼-- · 2019-06-22 12:32

You can style the button in the theme with attributes: android:buttonBarPositiveButtonStyle, android:buttonBarNegativeButtonStyle, and android:buttonBarNeutralButtonStyle.

查看更多
欢心
3楼-- · 2019-06-22 12:35

Ok, the issue is solved automagically by updating to the (just released) release 21. Now the buttons are automatically in primary color :-)

EDIT: They are not in primary color, but in Android's basic turquoise..

查看更多
Viruses.
4楼-- · 2019-06-22 12:49

This solution is for changing button color with material effect in AppCompatDialogFragment.

<android.support.v7.widget.AppCompatButton
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="20dp"
android:text="@string/buttin"
android:theme="@style/AppTheme.MyButton"
/>

Style file - v21

<style name="AppTheme.MyButton" parent="Theme.AppCompat.Dialog.Alert">
  <item name="android:colorButtonNormal">@color/button_color</item>
  <item name="android:textColor">@color/text_color</item>
</style>

Style file

<style name="AppTheme.MyButton" parent="Theme.AppCompat.Dialog.Alert">
  <item name="colorButtonNormal">@color/button_color</item>
  <item name="android:textColor">@color/text_color</item>
</style>
查看更多
登录 后发表回答