[英]Android Custom button Padding doesn't change in pressed state
我有一個由選擇器在3種狀態下制作的自定義按鈕:正常,按下和禁用。我的按鈕下方有一個小層,使它們顯示為3d。 我的問題是,當按鈕進入按下狀態時,我希望它使填充更改(例如從頂部的0dp到頂部的5dp)。我嘗試了幾種解決方案,但它不起作用。 這是我的代碼:我的選擇器:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" android:variablePadding="true" >
<item android:drawable="@drawable/button_pressed" android:state_pressed="true" />
<item android:drawable="@drawable/button_disabled" android:state_enabled="false" />
<item android:drawable="@drawable/button_normal" />
</selector>
這是狀態和陰影drawable:
陰影:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="@dimen/corner_radius" />
<solid android:color="@color/buttonshadow" />
</shape>
正常:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/button_shadow" />
<item >
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
<corners
android:radius="11dp"
/>
<solid
android:color="@color/buttonColor"
/>
</shape>
</item>
</layer-list>
按:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="#00000000"/>
<padding
android:left="3dp"
android:top="3dp"
android:right="0dp"
android:bottom="0dp" />
</shape>
</item>
<item>
<shape android:shape="rectangle">
<corners android:radius="@dimen/corner_radius" />
<solid android:color="@color/buttonColor" />
<padding
android:left="3dp"
android:top="3dp"
android:right="0dp"
android:bottom="0dp" />
</shape>
</item>
</layer-list>
我的按鈕用法:
android:id="@+id/btn_gologin"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Hello"
style="@style/MyButton"
和我的風格:
<style name="MyButton" >
<item name="android:background">@drawable/button_selector</item>
<!-- darker variant for the status bar and contextual app bars -->
<item name="android:textColor">@color/black</item>
<!-- theme UI controls like checkboxes and text fields -->
<item name="colorAccent">@color/colorAccent</item>
<item name="android:textSize">20sp</item>
<item name="android:textAllCaps">false</item>
</style>
您沒有在按鈕中設置更改
假設此文件的名稱是myCustomButton.xml
version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" android:variablePadding="true" >
<item android:drawable="@drawable/button_pressed" android:state_pressed="true" />
<item android:drawable="@drawable/button_disabled" android:state_enabled="false" />
<item android:drawable="@drawable/button_normal" />
</selector>
然后你的按鈕使用將是
<android:id="@+id/btn_gologin"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Hello"
android:background="@drawable/myCustomButton"/>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.