我添加了一个自定义按钮,为每个状态更改了一些值,但当我按下按钮时,按钮仍然没有更改,只是获得默认样式,我将窗体矩形中的形状更改为椭圆形,这样我就可以看到选择器是否进入按下状态,我看到它现在确实进入了唯一的问题是固体或颜色没有更改。
自定义按钮实现:
<?xml version="1.0" encoding="utf-8"?>
<item android:state_enabled="false">
<shape android:shape="rectangle">
<solid android:color="@color/LightGray"/>
<corners android:radius="200dp"/>
</shape>
</item>
<item android:state_pressed="true">
<color android:color="@color/Blue"/>
<shape android:shape="rectangle">
<corners android:radius="200dp"/>
</shape>
</item>
<item>
<shape android:shape="rectangle">
<solid android:color="@color/DarkBlue"/>
<corners android:radius="200dp"/>
</shape>
</item>
和按钮实现:
<Button
android:id="@+id/btnNext"
android:layout_width="102dp"
android:layout_height="wrap_content"
android:background="@drawable/custom_button"
android:layout_alignParentEnd="true"
android:layout_marginBottom="68dp"
android:text="Next >"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintStart_toStartOf="parent"
/>
3条答案
按热度按时间xienkqul1#
我发现在使用自定义按钮时,请确保更改
这是由于材料io按钮不能接受自定义按钮作为背景。
jk9hmnmh2#
按下状态下的颜色位置有问题。纯色属性应位于标记内。请尝试使用以下内容
而且它应该像预期的那样工作。
如果以上不起作用,则尝试为不同状态创建不同的可绘制对象:
1.启用错误:可绘制_1
1.按下真:可绘制_2
1.按下错误:可绘制_3
1.最后用选择器合并所有可绘制对象
bkkx9g8r3#
也许你可以试试这个
变换主题