如何使用Material Design在Alert Dialog Fragment中设置按钮样式?

时间:2014-10-17 09:45:34

标签: android dialog alertdialog material-design

我想在警告对话框中更改默认按钮样式。

标准警报对话框片段(在Android L中)如下所示:

Default Alert Dialog Fragment

我希望将右按钮设置为普通按钮而不是无边框按钮。谷歌本身似乎在各种对话中使用这种模式,例如:

Dialog without borderless button

有没有人知道这是否可行,而无需从头开始重新创建整个对话框?

4 个答案:

答案 0 :(得分:4)

您可以使用以下属性为主题设置样式:android:buttonBarPositiveButtonStyleandroid:buttonBarNegativeButtonStyleandroid:buttonBarNeutralButtonStyle

答案 1 :(得分:0)

好的,这个问题是通过更新到(刚刚发布的)版本21自动解决的。现在这些按钮自动为原色: - )

编辑:它们不是原色,而是Android的基本绿松石......

答案 2 :(得分:0)

此解决方案用于在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"
/>

样式文件 - 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 name="AppTheme.MyButton" parent="Theme.AppCompat.Dialog.Alert">
  <item name="colorButtonNormal">@color/button_color</item>
  <item name="android:textColor">@color/text_color</item>
</style>

答案 3 :(得分:0)

科特林

  1. 在应用的主题/样式中,添加以下行:

    stages {
            stage('Open and Check ticket status’) {
                steps {
                    script {
                        dockerImage.inside(" -u root ") {
                            // Open ticket
                            withCredentials([string(credentialsId: JENKINS_API_KEY, variable: 'API_KEY')]) {
                                cmd = "curl -X POST -H 'x-api-key:${API_KEY}' '${URL}/requests' | jq -r '.requestId'"
                                REQUEST_ID = sh(script: cmd, returnStdout: true).trim()
                                print(REQUEST_ID)
                            }
    
                            // Check ticket Status
                            withCredentials([string(credentialsId: JENKINS_API_KEY, variable: 'API_KEY')]) {
                                cmd = "curl -X GET -H 'x-api-key:${API_KEY}' '${URL}/requests/${REQUEST_ID}'  | jq -r '.requestStatus'"
                                REQUEST_STATUS = sh(script:cmd, returnStdout: true).trim()
                                print(REQUEST_STATUS)
                            }
                        }
                    }
                }
            }
        }
    
  2. 然后添加以下样式:

    <item name="android:buttonBarNegativeButtonStyle">@style/NegativeButtonStyle</item>
    <item name="android:buttonBarPositiveButtonStyle">@style/PositiveButtonStyle</item>
    <item name="android:buttonBarNeutralButtonStyle">@style/NeutralButtonStyle</item>
    

使用此方法无需在AlertDialog构建器中设置主题。