Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 棒棒糖:禁用按钮-->;哪种款式?_Android_Android 5.0 Lollipop_Material Design - Fatal编程技术网

Android 棒棒糖:禁用按钮-->;哪种款式?

Android 棒棒糖:禁用按钮-->;哪种款式?,android,android-5.0-lollipop,material-design,Android,Android 5.0 Lollipop,Material Design,我试图追踪,棒棒糖如何显示一个按钮,该按钮在布局文件中被禁用 全息图 使用Holo很容易:在styles\u Holo.xml中,我找到了style Widget.Holo.Button,它提供了对@drawable/btn\u default\u Holo\u的引用。在那里我找到了选择器: <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_wind

我试图追踪,棒棒糖如何显示一个按钮,该按钮在布局文件中被禁用

全息图 使用Holo很容易:在styles\u Holo.xml中,我找到了style Widget.Holo.Button,它提供了对@drawable/btn\u default\u Holo\u的引用。在那里我找到了选择器:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_window_focused="false" android:state_enabled="true"
android:drawable="@drawable/btn_default_normal_holo_dark" />
<item android:state_window_focused="false" android:state_enabled="false"
android:drawable="@drawable/btn_default_disabled_holo_dark" />
<item android:state_pressed="true"
android:drawable="@drawable/btn_default_pressed_holo_dark" />
<item android:state_focused="true" android:state_enabled="true"
android:drawable="@drawable/btn_default_focused_holo_dark" />
<item android:state_enabled="true"
android:drawable="@drawable/btn_default_normal_holo_dark" />
<item android:state_focused="true"
android:drawable="@drawable/btn_default_disabled_focused_holo_dark" />
<item
android:drawable="@drawable/btn_default_disabled_holo_dark" />
</selector>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="false"
android:alpha="@dimen/disabled_alpha_material_light"
android:color="@color/button_material_light"/>
<item android:color="@color/button_material_light"/>
</selector>

但阿尔法值只能解释其中的一半。不知何故,棒棒糖也将海拔降到了0?

这就是我解决这个问题的方法,多亏了你的部分回答

第一:在“res”文件夹下添加新文件夹“color”,如果它不存在的话

在“color”文件夹中添加新的.xml文件(我将此文件称为ButtonColorSelector.xml),我们将在其中创建新文件,如下所示:

<?xml version="1.0" encoding="UTF-8" ?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_enabled="false" android:color="#F2F2F2"/> <!-- disabled -->
    <item android:state_pressed="true" android:color="#FF0000"/> <!-- pressed -->
    <item android:state_focused="true" android:color="#FF0000"/> <!-- focused -->
    <item android:color="#0000FF"/> <!-- default -->
</selector>
<Button
    android:background="@drawable/raisedbutton"
    android:text="@string/SomeButton"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:onClick="DoStuffitto"
    android:enabled="false"
    android:id="@+id/someButton" />

第二:将您提到的ripple effect.xml文件添加到“drawable”文件夹下,并引用您的颜色选择器,而不是btn_default_mtrl_形状。我将此文件称为RaisedButton.xml

<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="?attr/colorControlHighlight">
    <item>
        <shape>
            <solid android:color="@color/buttoncolorselector"/>
            <corners android:radius="5dp" />
        </shape>
    </item>
</ripple>

第三:现在您可以在布局中使用可绘制按钮背景,如下所示:

<?xml version="1.0" encoding="UTF-8" ?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_enabled="false" android:color="#F2F2F2"/> <!-- disabled -->
    <item android:state_pressed="true" android:color="#FF0000"/> <!-- pressed -->
    <item android:state_focused="true" android:color="#FF0000"/> <!-- focused -->
    <item android:color="#0000FF"/> <!-- default -->
</selector>
<Button
    android:background="@drawable/raisedbutton"
    android:text="@string/SomeButton"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:onClick="DoStuffitto"
    android:enabled="false"
    android:id="@+id/someButton" />

立面不是可绘制背景的一部分;它由stateListAnimator控制。再看一看材质按钮样式。