Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.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 API 21更改我的自定义按钮背景_Android_Xml_Material Design - Fatal编程技术网

Android API 21更改我的自定义按钮背景

Android API 21更改我的自定义按钮背景,android,xml,material-design,Android,Xml,Material Design,我正在Android上测试我的API21应用程序!不幸的是,我的按钮看起来很奇怪——添加了某种背景色。背景图像没有改变-除了边界,它们是完全透明的。(不同的文本和大小取决于屏幕截图) 在这里,您可以看到API 21之前和之后的按钮: 我已经试过android:elevation=“0dp”和android:background=“@android:color/transparent”。有人知道我的钮扣为什么会变吗?多谢各位 layout.xml: <Button android:id="@

我正在Android上测试我的API21应用程序!不幸的是,我的按钮看起来很奇怪——添加了某种背景色。背景图像没有改变-除了边界,它们是完全透明的。(不同的文本和大小取决于屏幕截图)

在这里,您可以看到API 21之前和之后的按钮:

我已经试过android:elevation=“0dp”和android:background=“@android:color/transparent”。有人知道我的钮扣为什么会变吗?多谢各位

layout.xml:

<Button android:id="@+id/sm_achievements_btn"
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:layout_weight="1.1"   
    android:background="@drawable/menu_btn_selector"
    android:onClick="showAchievements"
    android:text="@string/sm_achievements_btn"
    android:padding="@dimen/padding_std"
    android:layout_marginTop="@dimen/margin_small"
    android:textColor="@color/button_text"
    android:textSize="@dimen/text_xlarge"
    style="@style/lbm_button"/>

menu_btn_selector.xml:

<item android:drawable="@drawable/menu_button"
 android:state_pressed="false"/>

style.xml:

<style name="lbm_button" parent="android:Theme.Holo.Light">
    <item name="android:textAllCaps">false</item>
</style>

假的

材质按钮有一个默认的stateListAnimator,提供基于状态的高程(例如,禁用时为0dp,启用时为1dp)。您可以通过在样式中或直接在按钮上设置android:stateListAnimator=“@null”来清除它

下面是按钮XML上的内容:

<Button android:id="@+id/sm_achievements_btn"
    ...
    android:textAllCaps="false"
    android:stateListAnimator="@null" />

此外,您的按钮样式使用了错误的父项。决不能将主题设置为小部件样式的父级。不管怎样,如果您喜欢这条路线,下面是它的外观:

<Button android:id="@+id/sm_achievements_btn"
    ...
    style="@style/MyButtonStyle" />

<style name="MyButtonStyle" parent="android:Widget.Material.Light.Button">
    <item name="android:textAllCaps">false</item>
    <item name="android:stateListAnimator">@null</item>
</style>

假的
@空的

非常感谢!家长的改变确实给我带来了一些问题,也许是因为我也有一些自定义按钮视图——我会解决的。多谢各位!谢谢android:stateListAnimator=“@null”帮我搞定了。