Android按钮在单击时丢失了自定义背景
我有一个自定义的背景上定义的绘图文件夹,基本上使一个圆形的形状 我面临的问题是,当我点击按钮时,按钮“丢失”了自定义背景,并获得了Android的默认背景 我尝试过创建一个选择器,并添加那些以状态为焦点的项目,等等,但没有任何效果 有没有一种简单的方法可以避免Android在点击按钮时改变按钮的背景 这是单击前的我的按钮: 这是单击后的我的按钮: 以下是带有按钮代码的axml:Android按钮在单击时丢失了自定义背景,android,Android,我有一个自定义的背景上定义的绘图文件夹,基本上使一个圆形的形状 我面临的问题是,当我点击按钮时,按钮“丢失”了自定义背景,并获得了Android的默认背景 我尝试过创建一个选择器,并添加那些以状态为焦点的项目,等等,但没有任何效果 有没有一种简单的方法可以避免Android在点击按钮时改变按钮的背景 这是单击前的我的按钮: 这是单击后的我的按钮: 以下是带有按钮代码的axml: <Button android:id="@+id/lockDeviceButton"
<Button
android:id="@+id/lockDeviceButton"
android:text="@string/lockThisDevice"
android:textColor="@android:color/white"
android:background="@drawable/button_rounded_green"
android:drawableLeft="@drawable/icon_lock"
/>
以下是圆形布局:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="24dp" />
<solid android:color="#03ae50" />
</shape>
以下是我到目前为止为各州保持相同背景所做的努力:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Non focused states
-->
<item android:state_focused="false" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/rounded_corners" />
<item android:state_focused="false" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/rounded_corners" />
<!-- Focused states
-->
<item android:state_focused="true" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/rounded_corners" />
<item android:state_focused="true" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/rounded_corners" />
<!-- Pressed
-->
<item android:state_pressed="true" android:drawable="@drawable/rounded_corners" />
</selector>
在进一步调查后,我发现了问题,与设计本身无关。这是一个隐藏的代码,覆盖了一个特定情况下按钮的背景
我对代码进行了重构,使其变得更干净,现在一切都很好。经过进一步调查,我发现了问题所在,与设计本身无关。这是一个隐藏的代码,覆盖了一个特定情况下按钮的背景
我对代码进行了重构,使其变得更干净,现在一切正常。android不会自行更改按钮的背景色。你确定你没有在
onClickListener
块中执行此操作吗?@MehranB经过进一步调查,我发现了这个问题。代码中有一个“隐藏”命令正在覆盖背景。谢谢,不用担心,兄弟。安卓不会自行改变按钮的背景色。你确定你没有在onClickListener
块中执行此操作吗?@MehranB经过进一步调查,我发现了这个问题。代码中有一个“隐藏”命令正在覆盖背景。谢谢你,不用担心,兄弟。