尝试在 Android 应用程序中设置按钮样式时遇到问题。我想制作一个具有顶部和底部边框的按钮,单击该按钮会更改文本颜色并且边框会消失。老实说,我在互联网上复制了边框的代码,并自己添加了一部分。不幸的是,标记不能正常工作。单击按钮时,文本颜色会发生变化,但边框不会消失。请告诉我如何解决这个问题。如果有人简而言之告诉它是如何工作的,那就太好了。下面是我的代码。
按钮:
<Button
android:layout_width="100dp"
android:layout_height="50dp"
android:text="Some button"
android:textColor="@drawable/ButtonTextColor"
android:background="@drawable/Button" />
按钮.xml 文件:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- обычное состояние кнопки/ Этот код скопирован в интернете,
и я не до конца понимаю, что он делает -->
<item>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:bottom="1dp"
android:left="-2dp"
android:right="-2dp"
android:top="1dp">
<shape android:shape="rectangle" >
<stroke
android:width="1dp"
android:color="#f00" />
<solid android:color="#223" />
<padding
android:bottom="10dp"
android:left="10dp"
android:right="10dp"
android:top="10dp" />
</shape>
</item>
</layer-list>
</item>
<!-- когда кнопка нажата. Бордеры должны пропасть, но не пропадают -->
<item android:state_pressed="true">
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#ff0"/>
</shape>
</item>
</selector>
按钮文本颜色.xml。一切似乎都很好,按下时按钮的颜色会发生变化:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_pressed="true" android:color="#fff" />
<item android:color="#f00" />
</selector>
将状态移到
android:state_pressed="true"顶部:制作两个单独
drawable的有和没有框架的。然后drawableselector对background按钮执行此操作,就像对文本颜色 (ButtonTextColor) 执行的操作一样,但不要使用属性color,而是使用drawable